從8月Google啟動Go 2草稿設計發想以來,Go 2的改版工作已經如火如荼的進行中,現在約有120個Go 2提案議題尚未解決,不過,Google提到,這些提案大部分未考量和Go 1相容的問題,因此提出了新的提案評估流程,要讓Go 2最大相容Go 1,避免分裂開發生態系

即便Go 2已經成為下一個版本Go的稱號,但官方提到,他們仍然會以漸進的步驟,而非單一主要版本更新的方式釋出Go 2。Go 1和Go 2的發展差異,將體現在影響設計的人,以及做出決策的方法,Go 1是一個小團隊努力的成果,外部影響不大,但現在他們想讓社群作為主要驅動Go 2發展的力量。

2015年官方釋出了第一版提案流程,收集語言提案以及函式庫的回饋,並由Go資深團隊成員組成的委員會負責審查、分類和決定提交的提案,在這過程中,委員會把所有不向後相容的提案都標記為Go 2。2017年,官方停止做出任何漸進向後相容的語言更改,要用更縝密的計畫考量Go 2的發展。

而現在Go 2開始動工了,官方提出了新的提案評估流程,要讓新的提案功能依然支援現存大量的Go程式碼。目前約有120個標記為Go 2提案的未決問題,這些提案代表著重要函式庫功能以及語言更改,不過多數不相容現有Go 1函式庫。官方對這些提案進行了處理,他們合併了相關提案,並關閉了看似超出Go範圍的提案,或是無法實現的提案。其餘的提案最終都可能影響Go 2的函式庫和語言功能。

早期出現的兩個提案包括更好的錯誤處理和泛型,草稿都在今年的GopherCon上發布,等待更多探索發展,而剩餘的提案,官方提到,他們不想要過度影響數百萬Go開發者以及現存的Go程式碼,冒著分裂生態系的險改版Go 2,依循這個限制,Go 2無法做出太多改變,每一個改變都需要仔細選擇,為此這些提案都將使用新的提案評估流程來決定去留與發展。

提案評估流程目的是,要收集少數選定提案的回饋,以做出最終決定,過程或多或少會與發布周期並行。流程第一步是提案選擇,Go團隊已經選擇了少量看起來值得考慮接受的Go 2提案,但沒有做出最終決定。第二步提案回饋,Go團隊將發出一份列出所選提案的公告,公告會向社群解釋提案的初衷並收集回饋意見,這個步驟讓社群有機會提出建議。

第三步實作,根據社群回饋,提案進行實作。第四步實作回饋,Go團隊和社群有機會在開發周期中,試用新功能並且收集進一步的回饋。最後一步釋出決定,在三個月開發周期結束,依據發布周期收集的經驗和回饋,Go團隊會考量變更實作的預期收益或產生額外的成本,做出是否發布更改的最終決定,發布後,更改將成為語言和函式庫的一部分,被排除的提案可能要重新來過或被拒絕。

官方提到,提案成立的準則是,要為許多人解決重要議題,並提出清晰易於理解的解決方案,但是必須最小化對每個人影響。現在Go 2提案評估流程在由Go團隊執行完第一步後,已經進到了第二步,Go社群成員現在可以開始對提案提供回饋。


Advertisement

更多 iThome相關內容