Go 部落格
Go 版本 1 發布

這是 Go 程式語言發展歷程中的重要里程碑。我們在此宣布 Go 版本 1,簡稱 Go 1,它定義了一套語言和核心函式庫,為建立可靠產品、專案和刊物奠定穩固基礎。
Go 1 是第一個以受支援的二進制發行版提供的 Go 版本。它們適用於 Linux、FreeBSD、Mac OS X,以及讓我們振奮不已的 Windows。
開發 Go 1 的主要動機是為了提供使用者穩定性。撰寫 Go 1 程式的人可以確信這些程式將會持續編譯,並在各種環境中持續執行,而且不會變更,而且時程可達數年。同樣地,撰寫有關 Go 1 書籍的作者也能夠確定他們的範例和解說對現在和未來的讀者會有幫助。
向前相容性是穩定性的其中一個面向。以 Go 1 編譯的程式碼(少數例外情況除外)應可在該版本的生命週期中持續編譯及執行,即使我們會發布更新和修正程式,例如 Go 版本 1.1、1.2 等。Go 1 相容性文件 更詳細地說明了相容性指南。
Go 1 是 Go 如今的使用形式,而非重大的重新設計。在規劃時,我們專注於清除問題與不一致性,並改善可移植性。我們早就設計和製作出許多 Go 變更,但並未發布,原因是這些變更具有向後不相容性。Go 1 納入了這些變更,對語言和函式庫提供了重大改進,但有時會對舊程式帶來不相容性。很幸運地,go fix 工具可以自動處理大量將程式提升到 Go 1 標準所需的工作。
Go 1 引入了語言變更 (例如針對 Unicode 字元 和 錯誤 的新類型),以及標準函式庫變更 (例如新的 time 套件,以及 strconv 套件 中的重新命名)。此外,套件階層已重新安排,以將相關項目分組在一起,例如將網路功能 (例如 rpc 套件) 移至 net 的子目錄中。所有變更的完整清單,請參閱 Go 1 發行說明。有關程式設計人員從 Go 的早先版本移轉程式碼,該文件是必要的參考文件。
我們也利用新的 go 指令,針對 Go 工具組進行重新建構,go 指令是一種用於擷取、建置、安裝和維護 Go 程式碼的程式。go 指令消除了為撰寫 Go 程式碼而建立 Makefiles 的需求,原因是其使用 Go 程式來源本身來衍生建置指示。沒有更多建置指令碼了!
最後,Go 1 發行引發 Google App Engine SDK 的新發行。類似的修訂和穩定化程序已套用到 App Engine 函式庫中,提供開發人員建置 App Engine 程式的基礎,且這些程式將執行好幾年。
Go 1 是核心 Go 團隊和來自開源社群的許多貢獻者共同努力的成果。我們感謝協助達成此成就的每個人。
成為 Go 程式設計人員,沒有比現在更好的時機了。開始所需的一切都在 golang.org。
下一篇文章:Google I/O 2012 的 Go 影片
前一篇文章:認識 Go 社群
部落格索引