Go 部落格

十二年 Go

Russ Cox,為 Go 團隊
2021 年 11 月 10 日

今天我們慶祝 Go 開源釋出十二週年。過去的一年充滿事件,我們對明年充滿期待。

部落格上最明顯的變化是我們在新家 go.dev 上,這是將所有 Go 網站整合為一個統一、一致網站的一部分。整合的另一部分是用 pkg.go.dev 替換 godoc.org

二月,Go 1.16 版本增加了macOS ARM64 支援,增加了檔案系統介面嵌入檔案,並預設啟用模組,同時還有慣常的各種改進和最佳化。

八月,Go 1.17 版本增加了 Windows ARM64 支援,使TLS 密碼套件決策更簡單、更安全,引入了剪枝模組圖,使模組在大型專案中更加高效,並增加了新的、更易讀的構建約束語法。底層方面,Go 1.17 在 x86-64 上將 Go 函式切換到基於暫存器的呼叫約定,將 CPU 密集型應用程式的效能提升了 5-15%。

在這一年中,我們釋出了許多新的教程,一份Go 資料庫指南,一份開發模組指南,以及一份Go 模組參考。一個亮點是新的教程“使用 Go 和 Gin 開發 RESTful API”,該教程也提供使用 Google Cloud Shell 的互動式形式

我們在 IDE 方面也很忙碌,在 VS Code Go 中預設啟用了 gopls,併為 gopls 和 VS Code Go 帶來了無數改進,包括由 Delve 提供支援的強大的除錯體驗

我們還啟動了Go 模糊測試(fuzzing)beta 版本,並正式提議向 Go 中新增泛型,這兩者預計都將在 Go 1.18 中推出。

繼續適應“虛擬優先”,Go 團隊在 Google Open Source Live 主辦了我們第二屆年度 Go 日。您可以在 YouTube 上觀看講座。

展望未來

我們對 Go 的第 13 年充滿期待。下個月,我們將在GopherCon 2021上有兩場講座,以及來自 Go 社群的許多才華橫溢的講者。免費註冊並標記您的日曆!

二月,Go 1.18 版本將新的基於暫存器的呼叫約定擴充套件到非 x86 架構,帶來顯著的效能提升。它將包含新的 Go 模糊測試支援。這將是第一個包含泛型支援的版本。

泛型將是我們在 2022 年的重點之一。Go 1.18 中的首次釋出只是一個開始。我們需要花時間使用泛型,瞭解哪些有效,哪些無效,以便我們可以編寫最佳實踐,並決定哪些應該新增到標準庫和其他庫中。我們預計 Go 1.19(預計於 2022 年 8 月釋出)及更高版本將進一步完善泛型的設計和實現,並將其更深入地整合到整體 Go 體驗中。

2022 年的另一個重點是供應鏈安全。多年來,我們一直在討論依賴問題。Go 模組的設計提供了可重現、可驗證、已驗證的構建,但仍有更多工作要做。從 Go 1.18 開始,go 命令將在二進位制檔案中嵌入更多關於其構建配置的資訊,既方便重現性,也幫助需要為 Go 二進位制檔案生成 SBOM(軟體物料清單) 的專案。我們還啟動了Go 漏洞資料庫及其關聯工具的工作,用於報告程式依賴項中的漏洞。這項工作的一個目標是顯著提高此類工具的信噪比:如果程式沒有使用易受攻擊的函式,我們就不想報告它。在 2022 年期間,我們計劃將其作為獨立工具提供,同時也會將其新增到現有工具中,包括 gopls 和 VS Code Go,以及新增到pkg.go.dev。在改進 Go 供應鏈安全姿態的其他方面,也有更多工作要做。請繼續關注詳細資訊。

總的來說,我們預計 2022 年將是 Go 充滿事件的一年,我們將繼續按時釋出版本並提供您所期待的改進。

謝謝!

Go 遠不止是 Google Go 團隊的我們。感謝您幫助 Go 取得成功並加入我們這次冒險。我們希望大家都能保持安全,並祝願大家一切順利。

下一篇文章:Go 1.18 Beta 1 已釋出,包含泛型
上一篇文章:pkg.go.dev 上的新搜尋體驗
部落格索引