- 論壇徽章:
- 49
|
在Google I/O 2013上,幾名Go團(tuán)隊的成員組織了一個名為“爐邊談話”的活動。Robert Griesemer, Rob Pike, David Symonds, Andrew Gerrand, Ian Lance Taylor, Sameer Ajmani, Brad Fitzpatrick, 與Nigel Tao一同回答了由現(xiàn)場觀眾與那些無緣當(dāng)場的其他人提出的關(guān)于Go的多方面的特征的一些問題。
我們?nèi)ツ晖瑯右步M織過一個類似的活動:Meet the Go team.
當(dāng)時我們收到了很多問題以至于我們無法在短短的四十分鐘內(nèi)一一回答,F(xiàn)在我們將會在這里對當(dāng)時無法現(xiàn)場回答的一些問題做出解答。
連接速度(和內(nèi)存的使用)對于GC的工具鏈來說是一個已知的問題。有沒有計劃在1.2期間搞定這個問題?
Rob:是的。我們總是在考慮改善工具的性能、語言支持和庫的方法。
我已經(jīng)很高興的看到了,Go那么迅速就得到了顯著的提高。你能談?wù),在同其他Google內(nèi)外的開發(fā)者一起工作時,曾經(jīng)得到的反饋嗎?
Robert:許多開發(fā)者,在認(rèn)真的使用了Go之后,都很高興使用它。他們中許多人提出了一個小很多、更具可讀性、如此易于維護(hù)的代碼基:一個50%的代碼縮減,而來自于C++的代碼縮減更多是很常見的。從Python改用Go的開發(fā)者們,都很為獲得的性能而高興。典型的抱怨是關(guān)于語言中少量的不一致性的(在某一時刻,我們將解決他們當(dāng)中的一些)。令我驚奇的是,幾乎沒有人抱怨缺少通用性。
Go語言會不會發(fā)展成為安卓開發(fā)的首選語言?
Andrew:非常棒的想法,但是目前我沒有什么消息可以宣布。
關(guān)于Go語言的版本有沒有路線圖?
Andrew:我們沒有關(guān)于功能的路線圖。貢獻(xiàn)者們傾向于在他們感興趣的方面做工作。其中比較活躍的方面包括:gc和gccgo編譯器,垃圾回收器和運行時支持(runtime),還有很多其它方面。而我們希望大部分令人激動的改進(jìn)是對我們的工具(tools)進(jìn)行改進(jìn)。你可以在go語言的開發(fā)郵件列表找到關(guān)于設(shè)計的討論和對代碼審查。
至于時間線,我們確實有精確的計劃:我們會在2013年的12月1號發(fā)布Go 1.2。
在外界的哪些領(lǐng)域使用Go是你們所希望看到的?在谷歌之外,如何使用Go會讓你們認(rèn)為是一個巨大的勝利?你們認(rèn)為Go在哪些領(lǐng)域會有巨大的潛力?
Rob:在哪里部署Go取決于使用她的人,而不是我們。我們很樂意看到Go能在任何地方嶄露頭角。她一開始是被設(shè)計用于服務(wù)器端的軟件開發(fā),而且也確實在這方面展現(xiàn)出她的魅力。但是,她也在很多其它領(lǐng)域顯現(xiàn)出了她的優(yōu)勢。整個故事其實才剛剛開始,還有很多的驚喜在等著我們。
Ian:Go很容易上手,因為新手不需要面對復(fù)雜難懂的代碼基。所以,我們將看到在未來Go會有兩個巨大的勝利:1.除谷歌之外,許多大型的軟件公司會大量的采用Go語言。2.那些主要用Go的創(chuàng)業(yè)公司會有一個重要的IPO(首次公開募股)或者直接被收購。原因很直接:對編程語言的選擇對于一個企業(yè)的成功是一個很小的因素。但是,這也以另外一種方式證明:Go會成為成功軟件系統(tǒng)的一部分。
你們是否想過Go在動態(tài)加載方面(包或者目標(biāo)文件)有非常大的潛力?是否考慮過在Go中如何實現(xiàn)動態(tài)加載?我認(rèn)為如果實現(xiàn)動態(tài)加載會使一些有趣的構(gòu)想成為可能,尤其是與接口相結(jié)合。
Rob:這也是一個經(jīng)常被討論的問題。我們能感受到動態(tài)加載的想法之強(qiáng)大,也希望我們不用花太長時間就能找到一個實現(xiàn)它的方法。畢竟在進(jìn)行設(shè)計和跨平臺的過程中肯定會有非常多的挑戰(zhàn)。
之前有這樣一個爭論:收集一些database/sql驅(qū)動的最佳組合放到一個更加集中的地方。另外一些人則極力反對。明年database/sql會怎樣發(fā)展呢?
Brad:當(dāng)我們?yōu)閿?shù)據(jù)庫驅(qū)動創(chuàng)建一個子庫("go.db")時,我們擔(dān)心這樣會過份的偏向特定的驅(qū)動。在這一點上,我始終希望能看到不同驅(qū)動之間的公平健康的競爭。在數(shù)據(jù)庫驅(qū)動的wiki上列出了一些優(yōu)秀的驅(qū)動。database/sql包在過去一段時間并沒有獲得太多的關(guān)注,主要是因為缺乏驅(qū)動,F(xiàn)在驅(qū)動有了,這個包的使用量也漸漸上升。更正和Bug也漸漸被反饋回來。我們會繼續(xù)修復(fù)Bug,但是對于接口的變更暫時不在計劃之內(nèi)?赡軙幸恍﹨f(xié)助某些驅(qū)動的提高性能的小擴(kuò)展。
那版本的情況呢?從github中導(dǎo)入代碼是Go團(tuán)隊推薦的最佳實踐嗎?萬一我發(fā)布的代碼中依賴的某個github庫的API發(fā)生改變了呢?
Ian:嗯,這也是郵件列表中經(jīng)常討論的問題。我們自己的做法是導(dǎo)入代碼,及時的更新快照。這樣的話,當(dāng)API改變時我們的代碼基就不會意外的崩潰。但是,我們明白這樣的方法對于那些自己提供庫的人不是很有效。我們開放的接納關(guān)于此方面的建議。記住,這是一個關(guān)于Go語言的工具的問題,而不是語言本身。也就意味著:修復(fù)這個問題的地方是在工具里,而不是語言本身。
那么,關(guān)于Go和圖形用戶界面呢?
Rob:這也是我非常掛心的一個問題。Newsqueak, 被設(shè)計專門用來寫圖形程序(或者稱之為app)的一個較早的語言,F(xiàn)在的局勢發(fā)生了很多改變,但是我認(rèn)為Go的并發(fā)模型在交互式圖形方面會有非常大的優(yōu)勢。
Andrew:現(xiàn)在已經(jīng)有很多對已有圖形庫的綁定,還有一些專為Go開發(fā)的圖形庫。其中前景最好的是go.uik,但是她現(xiàn)在還太年輕了。我認(rèn)為專為Go語言編寫的UI庫在編寫本地應(yīng)用方面一定有非常大的潛力(想想:通過從一個channel接受消息來處理用戶事件),但是開發(fā)一個工業(yè)級質(zhì)量的庫是一個非常艱巨且意義重大的事情。我相信不久之后就會有一個這樣的庫出現(xiàn)的。
與此同時,web平臺是現(xiàn)在最廣泛使用的用戶界面,Go提供了對web應(yīng)用的強(qiáng)大的支持,雖然只是在后端方面。
Adam Langley 在郵件列表中表示 TLS 代碼還沒有被外圍組織審閱,這些不應(yīng)該用在產(chǎn)品中。 有代碼審閱的計劃么?并發(fā) TLS 擁有良好的安全實行是非常棒的。
Adam:加密在細(xì)微和奇詭之處容易弄得一團(tuán)糟是出了名的,我只是一只人類。我不覺得 我可以保證 Go 的 TLS 代碼將會如何如何完美,我不想歪曲這點。
代碼中有很多地方有側(cè)通道問題:RSA 代碼會被蒙蔽但時間不定,P-224之外的橢圓曲線時間不恒定,Luck13 攻擊可能會生效。我希望在 Go1.2 的時間表內(nèi),后面兩個問題能夠得到解決:一個時間恒定的 P-256 實現(xiàn)和 AES-GCM。
沒有人進(jìn)一步審閱 TLS 協(xié)議棧,而且,我沒有調(diào)查我們是否能去 Matasano 或其它類似的地方。這取決于谷歌是否愿意資助。
你對 GopherCon 2014大會怎么看? 團(tuán)隊中的成員有參加的計劃么?
Andrew::我很期待。我確定我們會出現(xiàn)的。
英文原文:A conversation with the Go team
本文來自ChinaUnix新聞頻道,如果查看原文請點:http://news.chinaunix.net/opensource/2013/0617/2810872.shtml |
|