Go語(yǔ)言11歲了,網(wǎng)友:他喵的,終于確定出「泛型」了
「艱難的一年,依舊保持開(kāi)發(fā)的步伐」這就是作者Russ Cox在博客開(kāi)篇,對(duì)這一年來(lái)的工作做出的總結(jié)。
金磊 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
比Python更快,比Java更簡(jiǎn)潔,還有C++沒(méi)有的GC(垃圾收集)。
谷歌開(kāi)發(fā)的編程語(yǔ)言Go,迎來(lái)了它11歲的生日!
那么在這一年的時(shí)間里,Go經(jīng)歷了怎樣的變化?接下來(lái)又該如何發(fā)展?
為此,Go語(yǔ)言官方網(wǎng)站專門(mén)發(fā)布了文章Eleven Years of Go。
除了表示慶祝之外,也對(duì)上述的問(wèn)題做了一一解答。
「艱難的一年,依舊保持開(kāi)發(fā)的步伐」
這就是作者Russ Cox在博客開(kāi)篇,對(duì)這一年來(lái)的工作做出的總結(jié)。此外還說(shuō)道:
不僅如此,還積累了許多亮點(diǎn)。
首先,在去年11月,也就是Go十歲生日不久后,便推出了go.dev和pkg.go.dev。
到了今年2月份,Go 1.14版本發(fā)布了第一個(gè)正式「生產(chǎn)就緒 」(production-ready)的Go模塊實(shí)現(xiàn)。
與此同時(shí),還進(jìn)行了許多性能上的改進(jìn),包括「更快的defer」和真正「搶占式的goroutine調(diào)度」,目的就是為了減少調(diào)度和垃圾收集延遲。
3月初,Go推出了一個(gè)用于協(xié)議緩沖的新API,google.golang.org/protobuf,對(duì)protobuf reflection和自定義消息的支持,有了大幅度的改善。
當(dāng)然,新冠疫情在全球的爆發(fā),對(duì)于Go的開(kāi)發(fā)團(tuán)隊(duì)也帶來(lái)了一定沖擊。
于是,團(tuán)隊(duì)決定暫停春季的所有公開(kāi)發(fā)布或活動(dòng)。
但期間,Go團(tuán)隊(duì)還在繼續(xù)改進(jìn)gopls,這讓許多編輯器受益,并都啟用了高級(jí)Go-aware支持。
到了6月份,Go團(tuán)隊(duì)開(kāi)發(fā)的火力暴增:
- VSCode Go擴(kuò)展正式加入Go項(xiàng)目,現(xiàn)在由從事gopls的同一位開(kāi)發(fā)人員維護(hù)。
- 根據(jù)來(lái)自社區(qū)的反饋,將pkg.o o.dev背后的代碼進(jìn)行了開(kāi)源,用來(lái)作為Go項(xiàng)目的一部分。
- 月底,團(tuán)隊(duì)發(fā)布了「泛型」(Go generics)的最新設(shè)計(jì)草案,以及原型工具和「泛型」實(shí)驗(yàn)語(yǔ)法的playground。
7月份,Go團(tuán)隊(duì)為了應(yīng)對(duì)未來(lái)的變化,討論并發(fā)布了三種新的設(shè)計(jì)草案,分別是go:build、文件系統(tǒng)接口、構(gòu)建時(shí)文件嵌入。
在博客中,團(tuán)隊(duì)為此還說(shuō)道:將在2021年看到所有新特性。
到了8月份,便迎來(lái)了Go 1.15版本,但這個(gè)版本主要目的是修復(fù)bug,并沒(méi)有過(guò)多的新特性。
其中,比較重要的內(nèi)容就是「重寫(xiě)鏈接器」,這就讓Go在構(gòu)建大型項(xiàng)目時(shí),平均運(yùn)行速度提高了20%,平均使用的內(nèi)存減少了30%。
除了開(kāi)發(fā)方面的工作外,維護(hù)用戶、開(kāi)發(fā)者也是必不可少的。
10月份,團(tuán)隊(duì)對(duì)Go用戶進(jìn)行了一年一度的調(diào)研,并表示分析結(jié)果一旦出爐,便會(huì)在官網(wǎng)上進(jìn)行公示。
Go語(yǔ)言的下一步
正所謂「回顧過(guò)去,展望未來(lái)」。
Go團(tuán)隊(duì)對(duì)于即將到來(lái)的2021年,也是充滿了期待:
我們對(duì)Go的第十二個(gè)年頭感到非常興奮。
并列出即將在GopherCon 2020上展示的8個(gè)項(xiàng)目(感興趣的讀者可詳讀文末參考鏈接)。
但Go團(tuán)隊(duì)也「毫無(wú)隱藏」的公布了明年2大重要發(fā)布計(jì)劃。
2021年2月,將發(fā)布Go 1.16版本。
據(jù)介紹,這個(gè)版本將包含新的文件系統(tǒng)接口和構(gòu)建時(shí)文件嵌入。
它將完成鏈接器的重寫(xiě),從而帶來(lái)更多的性能改進(jìn),包括對(duì)剛剛發(fā)布的新蘋(píng)果Mac的支持。
2021年8月,將發(fā)布Go 1.17版本。
團(tuán)隊(duì)對(duì)此表示,「盡管細(xì)節(jié)尚未決定下來(lái),但毫無(wú)疑問(wèn),會(huì)帶來(lái)更多的功能和改進(jìn)」。
但在博客中也稍微透露了一些內(nèi)容。
例如,將包括一個(gè)針對(duì)x86-64新的基于寄存器的調(diào)用約定(不破壞現(xiàn)有程序集),這將使程序整體更快。
除了版本的計(jì)劃之外,團(tuán)隊(duì)還在博客中介紹了Go Module和Go generics的相關(guān)信息。
關(guān)于Go Module:
我們將繼續(xù)致力于開(kāi)發(fā)對(duì)Go module的支持,并將其很好地集成到整個(gè)Go生態(tài)系統(tǒng)中。
Go 1.16將包括我們迄今為止最流暢的Go module體驗(yàn)。
關(guān)于Go generics:
每個(gè)人心中的下一個(gè)功能特性當(dāng)然是「泛型」(generics)。
我們將在2021年中繼續(xù)努力,希望在年底之前為人們提供一些試用的目標(biāo)。
或許,它會(huì)成為Go 1.18 beta中的一部分。
對(duì)此,網(wǎng)友們似乎對(duì)「泛型」的發(fā)布計(jì)劃十分感興趣,并表示:
也有網(wǎng)友對(duì)「泛型」可能在1.18版本才會(huì)出現(xiàn)表示遺憾:
當(dāng)然,也有對(duì)Go發(fā)展速度表示「擠牙膏」的……
那么,這樣的Go語(yǔ)言,你怎么看?
參考鏈接:
https://blog.golang.org/11years
- 商湯林達(dá)華萬(wàn)字長(zhǎng)文回答AGI:4層破壁,3大挑戰(zhàn)2025-08-12
- 商湯多模態(tài)大模型賦能鐵路勘察設(shè)計(jì),讓70年經(jīng)驗(yàn)“活”起來(lái)2025-08-13
- 以“具身智能基座”為核,睿爾曼攜全產(chǎn)品矩陣及新品亮相2025 WRC2025-08-11
- 哇塞,今天北京被機(jī)器人人人人人塞滿了!2025-08-08