如何看待「Go 2.0」?

Introducing Go 2.0

Go 2.0要開新坑了啊

新的語法,新的標準庫..

會不會太激進了?

難道是要加入泛型就重寫了?

大家談談唄


第一句那麼大個的「thought experiment」看不到?還是英語不好理解不了這個詞?還是理解了故意說得好像真有這麼一回事搞個大新聞博眼球?

這篇文章也只說了一件事就是兼容性,作者的設想是規範化一個中間表示形式,然後不同的語法不同的標準庫就可以共存了,甚至實現其他語言的前端,就如LLVM的IR、jvm的bytecode那樣有一個規範。

作者也就是想想而已,又不是他主導編譯器開發。

這種無中生有的東西,______________


這只是Dave Cheney自己的頭腦風暴。他是個很熱心的go advocator, 但對 Go 的設計和開發,實在沒啥影響……

文章第一句:

Just so we』re clear, this post is a thought experiment, not any form of commitment to deliver Go 2.0 in any time frame.

我不知道他可以做什麼commitment.

Go對語言變化的proposal要求非常嚴格 GitHub - golang/proposal: Go Project Design Documents,最近甚至傾向要求先有prototype實現(Go team真心不是不聽社區意見,而是喊得特別響的人群bullshit也特別多)。Dave這種頭腦風暴式的討論mailing list上太多了我早免疫了。而 Dave 這篇文章,在 golang-dev 和 golang-nuts 上,甚至響都不帶一個……

說迴文章內容,Dave給出的兩個大的要做不兼容升級的理由都不充分:一是一些早期設計的錯誤,這些錯誤造成丑或多餘的語法,或者一些沒人用的傻叉標準包,但並不真正影響編程;二是要引入泛型,如果有了好的泛型實現有些標準庫可以重寫,比如 sort...... 然而目前最接近可實現的 generic proposal 中,也沒有看到必須不兼容地修改語言或者標準庫的地方(proposal里有對標準庫的修改和extend計劃)。為了 good to have 做不兼容升級是說不通的。後面怎麼做不兼容升級的部分,就真是想太多了。

貝爾實驗室這幫人都雞賊得很,Bjarne Stroustrup 解釋 C++ 要做成 C 的超集:「Dennis Ritchie 在 C 里犯了一些錯誤,我來重新搞不見得就不犯另一些錯誤,那還不如把鍋甩給 Dennis 咯」。搞個不兼容升級就要自己背鍋,不被逼得沒辦法大概是沒人願意乾的。


互聯網的世界再也沒有向下兼容(逃

再說了go那個類型系統的設計,加入泛型要重寫也是正常的。這是.net 15年前的經驗教訓。


Python3表示這鍋我背了很久了,誰來接一下

Go2.0說兄弟你等哈子,勞資來佬


相對 Swift 來說 Go 更新的實在是太慢了

這屆 Google 不行啊

(手動滑稽


太棒了,我終於可以用以前C++里的模板技術,和其他gopher拉開距離了。但又怕它為了少即是多,簡潔就是強大,而把模板做的簡單,導致很多人都能學會。。。

我認為這次不兼容的升級就是為了測試哪些用戶是最真誠的用戶,還堅持用Go。那麼以後就只針對這些人做設計,少一些沒意義的雜音(就是不用的人就別發言),一切都會變得簡單,高效。就像Go一貫堅持的語言設計那樣,KISS。

這是黑,可舉報。


誰加上的python標籤。。。


雖然我希望Go加上泛型的支持,但是我個人感覺可能性不大。Go語言本身是挺好的,尤其是語言級別對goroutine的支持,但是用了這麼久還是發現了一些Go語言的缺點:

* 沒有很好的GUI Library,當然這可能也不是Go想解決的問題

* database的支持太弱了,不支持一次性執行多個語句,不支持一個stored procedure返回多個result set等等等等。這個導致的Go的使用場景很受限,本來Go用於開發microservices是很好的,但是稍微複雜點的應用程序都需要對資料庫有複雜的交互,用Go來開發就很痛苦啊。

大家覺得我說的有道理么,你們還遇到了什麼Go的限制或者問題?


嚇得我去翻了Rob Pike的Twitter 前幾天剛更新到1.7.3啊!!!!


推薦閱讀:

如何看待GO語言的新GC(TOC)?
這樣一段代碼在軟體工程界屬於什麼水平?
現在想再學習一門編程語言,應該選擇go還是python?
Golang 的並發與 Erlang、Scala、Node.js 和 Python 的並發模型相比有何特點?
為什麼用golang作為遊戲服務端的開發語言,它的並發性如何?golang有什麼優點?

TAG:編程語言 | Go語言 |