Go 總負責人 rsc 即將卸任,回顧他的光與暗!
大家好,我是煎魚。
前段時間大家應該有被一則重磅消息給震驚到,那就是:Go 核心團隊的負責人 rsc,對外突然宣布要卸任了,時間定在 9.1 號。
rsc 在此前領導了 Go 編程語言項目超過 12 年,我們所經歷的 Go 核心功能的氛圍、發展、Go+云原生的黃金時代,都與他有直接關系。
卸任宣言重點
本次 rsc 的卸任宣言正文來自《passing torches to Austin and Cherry[1]》。
歸納重點內容是:
- 領導交接:從 9 月 1 日起,Austin Clements 將接任 Go 項目的技術負責人,接替現任負責人管理 Go 核心部分。Cherry Mui 將領導編譯器、運行時等領域。
- 現任負責人的角色調整:現任負責人(rsc)將退居二線,給新領導更多決策空間,但仍會參與設計討論和代碼審查等工作。
- 反對“終身領袖”模式:rsc 認為長期由一人領導不利于項目發展,因此決定讓位,支持新領導的成長。
- 對新團隊的信心:rsc 表示對 Austin 和 Cherry 的能力充滿信心,并相信新領導團隊將使 Go 項目更加強大。
- 未來規劃:rsc 以后將更多地關注 Gaby[2] 和 Oscar[3] 項目,并繼續為 Go 社區做出貢獻。
Go 新任領導是誰
從 2024 年 9 月 1 日起,將由 Austin Clements[4] 擔任。
Clements 自 2014 年以來一直在 Google 的 Go 團隊工作,具有豐富的經驗和專業知識。已經輕車熟路。
現階段他專注于 Go 語言的核心部分,包括:編譯器工具鏈、運行時和版本發布等方面。是 Go 運行時和編譯器的技術負責人。
他的判斷能力被認為非常出色,這使他成為入選該職位時的理想人選。
注:他以前在大會分享《GopherCon 2020: Austin Clements - Pardon the Interruption: Loop Preemption in Go 1.14[5]》,有興趣的同學可以學習或眼熟一下。
回顧 rsc 光與暗
rsc,在任職期間屬于王炸般的存在,推行了許多的內容物。
有非常多的爭議,也取得了不少的成果。是好是壞很難評。可能 5~10 年后可以再看看。
Go Module 模塊管理
在以前 Go 還是使用 GOPATH 模式時(Google 內部這么用沒什么大問題,因為是大倉庫模式),沒有考慮到社區的使用情況,于是 godep 等各家自研模塊管理就出來了,百家爭鳴。
當時 rsc 他們說要把其中一個轉正。結果后面又說其他家的不好用,反手自己做黑臉,加速推出了 vgo(現在的 Module 的前身),引發社區各種反對。
當然,反對是沒有用的。最終在反對聲下,也成功的推進 Go Module 的 “正規” 化。
泛型、迭代器的引入
在過去這幾年中,加入比較出名的特性是:泛型、迭代器。
社區中有大佬認為:Go 開始朝著增加復雜性和隱式代碼執行的方向發展。也許我們需要停止添加增加 Go 復雜性的特性,應該專注于 Go 的基本特性 - 簡單性、生產力和性能。
也有認為加入這些特性后,Go 能夠面對解決的場景更多了。見仁見智。
Go1 向前、向后兼容性
簡單來講,Go1 本來就有承諾兼容性保障。但是 rsc 兩紙草案,進一步加強了前向、前后的兼容性承諾。
選其中之一快速來講,就是:
將根據 go.mod 中的 Go 版本號來設置對應 GODEBUG,以提供超越當前兼容性準則所保證的兼容性。
這一點做法,有人恨也有愛。愛的覺得 Go 很棒,以后用的都不怕了,可以隨便升級。恨的,就覺得 Go 技術債務會越來越多。未來久了很容易變大坑。
不再有 Go2 了
由于 rsc 推行了 Go1 向前、向后兼容性的加強,之前還鬧的轟轟烈烈的 Go2。直接被一紙休書的干沒了。
計劃是用 GODEBUG 解決所有新的訴求。
總結
總的來講,我認為 rsc 經歷了 Go 這一門編程語言發展的黃金時代。他后半期非常果斷的推進了許多的技術手段和方案,還是讓人感受到了不少的 “震撼”。
現在換帥了,不知道 rsc 年代推進的技術政策會不會在未來被快速推翻。期待新的 Go 船手會怎么樣。
最近發布完 Go1.23,rsc 他們就去休假了,國外這一塊還是比較不錯的,勞逸結合的感覺。