標籤:

Go 1.7.6 和 1.8.2 雙版本發布,GO語言開發團隊為什麼要維護一個較低的歷史版?

是因為有大量的用戶還在用1.7版本嗎。。。維護一個較低的版本不並會加速用戶向高版本遷移。。可能還會阻礙用戶向高版本遷移。那這樣做的意義是什麼。。。


難道Go 1.7 和 1.8之間有巨大的鴻溝,像python2和python3那樣。。。

go 1.0 可以編譯的程序,go 1.x 都能正確編譯並正常運行,這是 go 編譯器做出的兼容性保證。所以並沒有 py2 和 py3 之間那樣不兼容。而且 1.0 發布之後,語言特性方面也沒有多少改動,並不會出現「雖然兼容舊語言特性,但不推薦使用」這種情況。

現在發布的 1.7.x 都是安全性更新。go 編譯器會維護最近兩個已發布大版本的安全性更新,現在就是 1.8 和 1.7。1.6 就不會有安全性更新的了。1.9 發布之後,1.7 也不會再更新的了,只會維護 1.9 和 1.8。

參考:

Go Security Policy https://golang.org/security

Go 1 and the Future of Go Programs https://golang.org/doc/go1compat

是因為有大量的用戶還在用1.7版本嗎。。。維護一個較低的版本不並會加速用戶向高版本遷移。。可能還會阻礙用戶向高版本遷移。那這樣做的意義是什麼。。。

上面已經說了是出於安全策略,而不是有多少人在用。不管多少人在用,發布之後,最多就維護一年,有安全方面的問題就發小版本。

一個編譯器,本來就沒人想著要「加速用戶向高版本遷移」。運行時、編譯器、標準庫方面的改進,可以吸引用戶使用新版編譯器,也會有用戶出於謹慎,而選擇舊一版的,因為雖然在發布之前,已經經過 3 個月的特性凍結並測試,但 bug 總是有存在的可能性的。


一般遇到這種情況,就應該明白,

是緊急修復了一個安全相關的BUG。

本次修復的是encrypt包的bug。


推薦閱讀:

golang 想要持久的火起來,該怎麼做?
如何看待Go進入tiobe top 20?
有哪些可以在500-1000行以內實現的Go語言項目?
有哪些不錯的golang開源項目?

TAG:Go語言 |