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