Go團隊公布關於Go 2下一步的計劃

Go 2 又有進展了,近日 Go 團隊在博客公布了關於 Go 2 下一步的計劃。根據此前的報道,所謂的 Go 2 並非一個單獨的重大更新版本,而是通過「增量(incremental)更新」的方式以逐漸抵達 “Go 2.0″,所以期間的版本都能看到 Go 2 的影子。

Go團隊公布關於Go 2下一步的計劃

當前狀態

Go 團隊表示正准備推出 Go 1.13,有望在今年 8 月初發布。經歷長時間的開發後,這會是首個包括對語言特性進行具體更改的重要版本,而不僅僅是針對規范的小調整。

為了實現這些變化,Go 團隊從一小系列可行的提案開始,這些提案很大一部分來自 GitHub 中被標記為提案的 issue 列表此文講述過關於提案新的評估流程,團隊希望所選擇的提案對語言的改動較小,而且幾乎沒有爭議,這樣是為了保證經歷完全程後,最終能實現這些提案。另外,提案引起的變更必須向後兼容,以實現最小的破壞性。

總而言之,初始階段的變更不是為了解決重大問題,更多的是希望 Go 社區重新活躍起來,並從新的流程中汲取經驗。

對於原始的提案列表 —— 通用 Unicode 標識符二進制整數字面量(binary integer literals)用於數字字面量的分隔符和 signed integer shift counts,官方表示已採納部分並對它們進行了修改。如關於二進制字面量的提案,團隊已對其進行了顯著的擴展,並對 Go 的數字字面量語法進行全面和現代化的改進。

Go 團隊還將錯誤處理(error inspection) 添加到了 Go 2 的草案設計提案中,該提案已被部分接受。

在 Go 1.13 中,我們將能看到這些變化,不過官方表示現在關注的重點是 Go 1.14,並確定接下來要解決的問題。

關於 Go 1.14 的提案

Go 團隊表示當前對 Go 語言的目標依舊和 2007 年的一致:成為一門使軟件開發更具伸縮性的語言。在這條路上,改進 Go 伸縮性的三大難題包括:包/版本管理、錯誤處理以及泛型。

不過隨着對 Go module 的支持日益強大,團隊正在努力解決對包/版本管理支持的問題。所以現在主要剩下錯誤處理和泛型的問題亟需解決。

團隊一直在研究和它們相關的問題,並在去年的 GopherCon 大會上提出了設計草案。自那時起,團隊就一直在迭代和改進這些設計。對於錯誤處理,他們發布了一個詳細的、經過重大修改和簡化的草案。對於泛型,團隊表示已取得進展,今年還在 GopherCon 上進行了一場名為 「Generics in Go」 的演講(Ian Lance Taylor 作為演講者),不過尚未達到具體的提案階段。

團隊希望給 Go 語言帶去一些小的改進,所以為 Go 1.14 選擇了以下這些提案:

下一步

團隊正在積極徵求對這些提案的反饋意見。他們希望看到用戶在基於事實的情況下,解釋為什麼提案可能在實踐中不能很好地運作,或者指出團隊在設計中欠缺考慮的問題等。對於僅包含個人意見的評論,團隊表示可以承認它們,但無法以任何建設性的方式來解決這些問題。

最後,如果沒有充分的理由阻止這些提案進入試驗階段,團隊將會在 Go 1.14 的開發周期(2019年8月初開始)中實現它們,以便在實踐中對其進行評估。根據提案評估流程,Go 1.14 預計將在開發周期結束時(2019年11月初)完成。

來源:cnBeta