Go 部落格

Go 十週年

Russ Cox,代表 Go 團隊
2019 年 11 月 8 日

Go 生日快樂!

這個週末,我們慶祝 Go 釋出十週年,標誌著 Go 作為構建現代網路軟體的開源程式語言和生態系統滿十歲了。

為了紀念這個時刻,Renee FrenchGo 地鼠的創作者,繪製了這幅令人愉快的場景

慶祝 Go 十週年讓我回想起 2009 年 11 月初,當時我們正準備與世界分享 Go。我們不知道會收到什麼樣的反應,是否會有人關心這門小小的語言。我當時希望,即使最終沒有人使用 Go,我們至少能引起大家對一些好想法的關注,特別是 Go 的併發和介面方法,這些想法可能會影響後續的語言。

一旦大家對 Go 感到興奮起來,我便回顧了 C、C++、Perl、Python 和 Ruby 等流行語言的歷史,考察了每種語言獲得廣泛採用所需的時間。例如,在我看來,Perl 似乎是在 20 世紀 90 年代中後期隨著 CGI 指令碼和網路而全面出現的,但它於 1987 年首次釋出。我考察的幾乎每種語言都重複了這個模式:一門新語言似乎需要大約十年的安靜、穩步改進和傳播才能真正騰飛。

我當時在想:十年後 Go 會在哪裡?

今天,我們可以回答這個問題:Go 無處不在,全球至少有一百萬開發者在使用它。

Go 最初的目標是網路系統基礎設施,也就是我們現在所說的雲軟體。如今,各大主要雲提供商都在使用用 Go 編寫的核心雲基礎設施,例如 Docker、Etcd、Istio、Kubernetes、Prometheus 和 Terraform;雲原生計算基金會(Cloud Native Computing Foundation)的大部分專案都是用 Go 編寫的。無數公司也在使用 Go 將自身工作遷移到雲端,從從零開始構建的初創公司到現代化軟體棧的企業。Go 的應用範圍也遠遠超出了最初的雲目標,其用途涵蓋了使用GoBotTinyGo控制小型嵌入式系統,到使用大規模大資料分析和機器學習在GRAIL檢測癌症,以及介於兩者之間的所有應用。

所有這一切都表明,Go 的成功超出了我們最瘋狂的夢想。Go 的成功不僅僅在於語言本身。它在於語言、生態系統,尤其是社群共同協作。

2009 年,這門語言是一個不錯的想法,有一個可用的實現草圖。go 命令還不存在:我們執行 6g 這樣的命令進行編譯,6l 進行連結二進位制檔案,並使用 makefile 自動化。我們在語句末尾輸入分號。整個程式在垃圾收集期間會停止,當時它難以充分利用雙核。Go 只能在 Linux 和 Mac 上執行,支援 32 位和 64 位 x86 以及 32 位 ARM。

在過去十年中,在世界各地 Go 開發者們的幫助下,我們將這個想法和草圖發展成一門富有成效的語言,它擁有出色的工具鏈、生產級質量的實現、先進的垃圾收集器,並已移植到 12 種作業系統和 10 種架構上。

任何程式語言都需要一個蓬勃發展的生態系統支援。開源釋出是該生態系統的種子,但自那時以來,許多人貢獻了他們的時間和才能,用優秀的教程、書籍、課程、部落格文章、播客、工具、整合以及當然還有可以透過 go get 匯入的可重用 Go 包來充實 Go 生態系統。沒有這個生態系統的支援,Go 永遠不會成功。

當然,生態系統需要一個蓬勃發展的社群支援。2019 年,世界各地舉辦了幾十場 Go 會議,同時還有150 多個 Go meetup 小組,成員超過 9 萬人GoBridgeWomen Who Go 透過指導、培訓和會議獎學金,幫助將新聲音帶入 Go 社群。僅今年一年,他們在社群成員教授和指導 Go 新人的工作坊中,就教授了數百名來自傳統上代表不足群體的人。

全球有超過一百萬的 Go 開發者,全球各地的公司都在尋求招聘更多的人。事實上,人們經常告訴我們,學習 Go 幫助他們在科技行業找到了第一份工作。歸根結底,我們對 Go 最引以為傲的不是精心設計的功能或巧妙的程式碼片段,而是 Go 對如此多人的生活產生的積極影響。我們的目標是建立一個能幫助我們成為更好的開發者的語言,而我們很高興 Go 幫助了這麼多人。

#GoTurns10之際,我希望大家能花點時間慶祝 Go 社群以及我們取得的所有成就。我代表谷歌的整個 Go 團隊,感謝過去十年中所有加入我們的人。讓我們讓下一個十年更加精彩!

下一篇文章:Go.dev:Go 開發者的新中心
上一篇文章:Go Modules:v2 及更高版本
部落格索引