日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式微處理器
[導(dǎo)讀]作者 |?Evrone 譯者 |?無明 來源 | InfoQ Rob Pike 是 Go 語言核心作者之一。本文是針對 Rob 的一次專訪,話題涉及 Rob 四十年的職業(yè)生涯、Go 語言過去十年的發(fā)展及其未來。 ?與現(xiàn)今的很多開發(fā)人員不一樣,你幾十年前就在貝爾實驗室開始了自己的職業(yè)生涯。從


作者 | Evrone

譯者 | 無明

來源 | InfoQ

Rob Pike 是 Go 語言核心作者之一。本文是針對 Rob 的一次專訪,話題涉及 Rob 四十年的職業(yè)生涯、Go 語言過去十年的發(fā)展及其未來。

 與現(xiàn)今的很多開發(fā)人員不一樣,你幾十年前就在貝爾實驗室開始了自己的職業(yè)生涯。從你角度來看,你認(rèn)為軟件開發(fā)方式最大的變化是什么?

現(xiàn)今的規(guī)模要大得多,不僅僅是計算機(jī)和網(wǎng)絡(luò),還有程序本身。所有的 Unix V6(大約發(fā)布于 1975 年)都可以輕而易舉地裝在一個 RK05 磁盤(只有差不多 2MB 的存儲空間)中,還留出了大量的用戶空間。這是一個很好的計算環(huán)境,至少在當(dāng)時看起來是這樣的。

 基于“抵制改變”和“承諾兼容”這樣的思想,你如何看待 Go 語言和它的生態(tài)系統(tǒng)在未來 10 年的發(fā)展?你設(shè)想的最好的未來是怎樣的?

盡管還不是很確定,但在經(jīng)過十多年的發(fā)展之后,參數(shù)多態(tài)設(shè)計——也就是通常認(rèn)為的泛型,將在未來一兩年出現(xiàn)。為已有的語言找到一種合適的設(shè)計是個大難題,不過 Ian Lance Taylor(Go 語言另一位核心作者)在這個問題上投入了驚人的精力,現(xiàn)在看來答案已經(jīng)觸手可及了。

這將給庫、生態(tài)系統(tǒng)和社區(qū)帶來怎樣的影響?我們拭目以待。

 隨著“漸進(jìn)式類型”被引入到“動態(tài)類型”語言中,以及“類型推斷”被引入到“靜態(tài)類型”中,二者之間的界線現(xiàn)在變得越來越模糊了。你對現(xiàn)代編程語言的類型系統(tǒng)有什么看法?

我非常喜歡靜態(tài)類型,因為它的穩(wěn)定性和安全性。

我非常喜歡動態(tài)類型,因為它給我?guī)砹藰啡ぁ?/p>

我不喜歡類型驅(qū)動編程、類型層次、類和繼承。盡管有很多非常成功的項目都是通過這種方式構(gòu)建的,但我覺得這種方法將重要的決策過早地放在了設(shè)計階段。換句話說,我更喜歡組合,而不是繼承。

不過我要對那些喜歡使用繼承的人說:不要在意我所說的,請繼續(xù)使用你認(rèn)為有效的方式。

 有時候人們應(yīng)用技術(shù)的方式很奇怪,例如通過 Python 或 Ruby 來生成 Go 代碼(我們的確看到過這種做法)。這些年來,你都見過哪些奇怪、有創(chuàng)意或有趣的 Go 語言用法?令你感到最驚訝的是什么?

最大的意外是我們得知 Go 語言被用來編寫惡意軟件。你無法控制誰會使用你的東西或者他們會用它做些什么。

 你開發(fā)了很多文本編輯器。你覺得 Visual Studio Code 怎么樣?有了 LSP 這樣的技術(shù),“文本編輯器”和 IDE 之間的界限現(xiàn)在變得越來越模糊了。你認(rèn)為軟件開發(fā)人員需要像 GoLand 那樣的全功能 IDE 嗎?或者使用 VS Code 就可以了?

我來自一個早于 IDE 出現(xiàn)的時代。在 Go 語言項目的早期,我們討論過 Go 語言是否需要借助 IDE 才能獲得成功。但當(dāng)時團(tuán)隊中沒有人具備開發(fā) IDE 的技能,所以我們沒有嘗試去開發(fā)一個 IDE。不過,我們確實開發(fā)了可用來解析和打印 Go 語言代碼的庫,并很快成為各種編輯器和 IDE 插件的基礎(chǔ),這是一個意外的成功。

最近,我們一直在努力開發(fā)一個叫作 gopls 的 Go LSP 服務(wù)器,任何支持該協(xié)議的編輯器或 IDE 都可以用它來改善 Go 語言編程體驗。

或許是因為我們習(xí)慣使用簡單的編輯器樣式,所以我們確信 Go 語言開發(fā)人員在編程環(huán)境方面也不需要做很多繁重的工作。不過,IDE 確實可以提供一些幫助:我看到的大多數(shù) Go 語言開發(fā)人員都使用了 IDE,或者至少是支持 Go 語言的編輯器,并從中獲得了很多好處。

使用什么樣的編輯器是一個個人偏好問題,取決于你使用的編程語言。

 軟件開發(fā)人員喜歡給事物貼標(biāo)簽,比如 Dart 是“前端語言”,C 語言是“系統(tǒng)底層語言”,等等。從 Go 語言的特性和用法來看,你會給它貼什么樣的標(biāo)簽?

Go 語言是一種通用的編程語言。你可以用它開發(fā)你想要的東西,而不用擔(dān)心語言會被固定在一個問題領(lǐng)域。

 你個人還喜歡哪些現(xiàn)代編程語言?

開發(fā) Go 語言的經(jīng)歷讓我明白了人們喜歡對編程語言發(fā)表意見。我自己也確實這樣,但我已經(jīng)厭倦了這種消極的結(jié)果,所以現(xiàn)在我盡量避免去評判它們。

在過去的 10 年里,語言設(shè)計領(lǐng)域出現(xiàn)了真正的復(fù)興,而在此之前,很少有新編程語言出現(xiàn)并獲得成功。我很高興看到這些以及它們所帶來的創(chuàng)新。

 在谷歌工作給 Go 語言的開發(fā)帶來了哪些幫助?在 Twitter 上發(fā)布類似“告訴我們你是如何使用我們的語言的”這樣的問題,并得到來自世界各地大公司的回應(yīng),這對你來說有多重要?它只是一個補(bǔ)充還是語言發(fā)展的一個重要組成部分?谷歌給你帶來了哪些幫助?

谷歌對 Go 語言項目的支持是非常慷慨的,我非常感謝它。當(dāng)然,Go 語言的出現(xiàn)是因為我們認(rèn)為谷歌需要它,云計算需要一種支持并發(fā)和易于部署的編程語言。不過,谷歌并沒有太過直接插手這個項目,它支持我們,讓我們做我們認(rèn)為是對的事情。

對于其他公司和用戶來說,社區(qū)輸入是了解項目進(jìn)展(語言、編譯器、工具、運行時、庫、環(huán)境)的關(guān)鍵組成部分。

 經(jīng)過 10 年的開發(fā)和觀察,你能說出 Go 語言在設(shè)計上最大的成功和失敗是什么嗎?它的強(qiáng)項和弱項分別是什么?

我想說兩件事,一個是技術(shù)上的,一個是政治上的。

從技術(shù)方面說,Go 語言支持并發(fā)計算。Go 語言只有十年左右的歷史,但在它誕生之初,“線程”和并發(fā)并沒有在編程社區(qū)得到廣泛的重視。事實上,開發(fā) Go 語言的一個主要原因是當(dāng)時在 C++ 中執(zhí)行并發(fā)計算比較困難。在項目啟動后不久,對并發(fā)性的支持成了一個明顯的優(yōu)勢,彌補(bǔ)了其他方面的不足。人們看到并發(fā)性的優(yōu)勢之后,他們就開始探索語言的其他方面,然后進(jìn)一步了解到更多的東西。所以,對并發(fā)的支持是一道很重要的關(guān)口。

正如 Cloudflare 的 John Graham-Cumming 所言,“我是為了并發(fā)而來,為了組合而留”。

Go 語言改變了多核計算編程。

從政治方面說,我們兌現(xiàn)了對 Go 1.0 兼容性的承諾。在使用了幾年 Go 語言之后,我們有一長串需要修復(fù)的東西,而且都是重大的變更。我們開發(fā)了一個更新程序,用“go fix”命令來推動社區(qū),然后我們就停了下來。這種穩(wěn)定性——2012 年編寫的 Go 程序到今天仍然可以完美地編譯和運行——是 Go 語言發(fā)展的一股巨大的推動力。其他公司可以非常自信地使用 Go 語言,相信我們不會對他們的程序造成破壞。在 1.0 和兼容性承諾兌現(xiàn)之后,使用率得到顯著的提高。

 你是如何平衡工作和生活的?現(xiàn)在很多人都在談?wù)摗奥殬I(yè)倦怠”,而疫情對解決這一問題毫無幫助。你的 40 年職業(yè)生涯可以給新一代開發(fā)人員帶來哪些啟示?

避免倦怠的最好方法是在一個可以為你提供支持的環(huán)境中做你真正喜歡做的事情。在我的整個職業(yè)生涯中,我非常幸運,但并不是每個人都像我一樣幸運。如果你感到工作壓力很大,你應(yīng)該放松一下,或者改變一下方向,尤其是當(dāng)下這種情況。

 事后看來,很多技術(shù)的流行要歸功于所謂的“殺手級應(yīng)用”。你能說出一個 Go 語言的“殺手級應(yīng)用”嗎?你對“殺手級應(yīng)用”持什么樣的看法?

幾年前,Danny Berkholz 說 Go 語言是“云基礎(chǔ)設(shè)施的新興語言”,這并非偶然。Go 語言是谷歌員工設(shè)計的,目的是讓谷歌相關(guān)程序的開發(fā)變得更容易,尤其是部署在聯(lián)網(wǎng)服務(wù)器上的程序,也就是我們今天所說的“云”。

因此,看到一些使用 Go 語言開發(fā)的云計算組件(Docker、Kubernetes 等),我們感到欣慰,但并不會很驚訝。Go 語言確實已經(jīng)成為云基礎(chǔ)設(shè)施事實上的編程語言。

 你認(rèn)為目前 Go 語言在哪些領(lǐng)域存在競爭?你對 Rust 的“無垃圾回收”和編譯時保證有什么看法?

Rust 是一種有趣的編程語言,我饒有興趣地關(guān)注著它的發(fā)展。除此之外,我沒有其他意見,就像我上面說的那樣。

 Go 語言在 GitHub 上的星數(shù)剛剛達(dá)到 7 萬!你認(rèn)為 GitHub、Reddit、Twitter、離線和在線會議、網(wǎng)絡(luò)研討會等不同的活動對 Go 語言有怎樣的影響?它們對編程語言取得成功是否很重要?還是說它們僅僅是對語言的一種反映?

我們在各種會議和社交媒體上遇到的人是 Go 語言發(fā)展的關(guān)鍵組成部分。很多貢獻(xiàn)者以積極的方式影響著語言的發(fā)展,包括最初移植到 Windows 和非 x86 架構(gòu)、工具和庫的開發(fā)、對技術(shù)建議的深入討論,等等。

當(dāng) Go 開發(fā)團(tuán)隊參與到社區(qū),參與討論、提出問題、尋求幫助和指導(dǎo),就走向了另一個方向。

有一件事我認(rèn)為很重要,那就是讓社區(qū)的聲音保持統(tǒng)一,讓社區(qū)成為一個團(tuán)隊,而不只是個體。一致的信息更容易理解。

 作為一種流行編程語言的作者,這給你的生活帶來了哪些改變?

需要說明的是,我是一個聯(lián)合作者。Ken Thompson 和 Robert Griesemer 和我一起啟動了這個項目,還有其他很多人也為項目做了巨大貢獻(xiàn),所以請不要把我當(dāng)成“作者”。

Go 語言確實提高了我的公眾形象,讓我被一個新的充滿活力的社區(qū)所認(rèn)識。但除此之外,并沒有太大的影響。在漫長的職業(yè)生涯中,我有過很多成功的經(jīng)歷(也有無數(shù)次的失敗)。

 假如你有機(jī)會回到過去,給年輕時的自己一個建議,也就是在你開始設(shè)計 Go 語言規(guī)范的時候,你會給自己和同事什么樣的建議呢?

很簡單,忽略那些討厭你的人。只需要傾聽那些理解你的目標(biāo)的聲音,他們才是你需要關(guān)心的人。不是每個人都認(rèn)同你所做的,不過這沒關(guān)系,那些參與推進(jìn)你正在嘗試做的事情的人是一個極好的想法、能量和靈感的來源。

我們將永遠(yuǎn)感謝這個充滿激情的社區(qū)。

參考閱讀:

https://evrone.com/rob-pike-interview


-END-




推薦閱讀



【01】深度: 震驚世間的驚人代碼(附完整代碼)
【02】編譯器如何將高級語言轉(zhuǎn)化成匯編語言的?
【03】C語言在嵌入式系統(tǒng)編程時的注意事項
【04】由C語言編寫的C編譯器是怎樣來的?
【05】還沒搞懂C語言指針?最詳細(xì)的干貨講解
【06】C語言結(jié)構(gòu)體(struct)最全的講解
【07】為什么在C語言中,goto這么不受待見?


免責(zé)聲明:整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉