Go 部落格
Go 成立 10 週年
生日快樂,Go!
本週末,我們將歡慶 Go 發行的 10 週年紀念,標誌著 Go 作為開放原始碼程式語言,以及建置現代網路軟體的生態系滿 10 歲了。
為了慶祝,Renee French,Go gopher 的創作者,繪製了這幅令人愉悅的場景

慶祝 Go 成立 10 週年,讓我回想起 2009 年 11 月初,當時我們正準備與世界分享 Go。我們不知道會得到什麼樣的反應,也無法預料是否有人會關心這門小語言。儘管我預想到最後可能沒有人使用 Go,但我們至少能引起對一些好想法的注意,特別是 Go 在執行緒和介面的做法,這可能會影響後續的語言。
當人們開始對 Go 感到興奮時,我回顧了 C、C++、Perl、Python 和 Ruby 等受歡迎語言的歷史,探討了它們花了多長的時間才廣泛採用。例如,在我看來,Perl 似乎在 1990 年代中期到後期才發展成熟,並採用了 CGI 腳本和網路,但其最早是在 1987 年發布的。這種模式幾乎出現在我檢視的每一種語言中:一種新的語言似乎需要大約十年的默默無聞、穩定的改進和推廣才會真正普及。
我在想:十年後 Go 會變成什麼樣子?
今天,我們可以回答這個問題:Go 無所不在,至少有 100 萬名開發人員在全球各地 使用它。
Go 最初的目標是網際網路系統基礎架構,也就是我們現在所稱的雲端軟體。現今,每一家主要的雲端供應商都使用以 Go 編寫的核心雲端基礎架構,例如 Docker、Etcd、Istio、Kubernetes、Prometheus 和 Terraform;雲端原生運算基金會計畫 中的絕大多數都是使用 Go 編寫的。無數家公司也使用 Go 將他們自己的工作轉移到雲端,從白手起家的新創公司到對軟體堆疊進行現代化的企業。Go 的採用也遠遠超出了其最初的雲端目標,包括使用 GoBot 和 TinyGo 來控制微小的嵌入式系統,到使用 巨量大數據分析和 GRAIL 的機器學習 來偵測癌症,以及介於兩者之間的所有事物。
總之,Go 的成功遠遠超乎我們的最狂野夢想。而 Go 的成功不僅在於語言本身。它在於語言、生態系統,尤其是共同合作的社群。
在 2009 年,這門語言只是一個構想,並且有一個可用的實作草圖。go
指令不存在:我們執行 6g
等指令來編譯,以及 6l
來連結二進位檔,並使用 makefile 自動化。我們在陳述式的結尾鍵入分號。整個程式會在垃圾回收期間停止,而當時它還很勉強才能善用兩個核心。Go 只在 Linux 和 Mac 上執行,在 32 和 64 位元 x86 和 32 位元 ARM 上執行。
在世界各地 Go 開發人員的協助下,我們在過去十年間,將這個想法和草圖發展成一門具備絕佳工具、具備製作品質的實作、最先進的垃圾收集器,以及傳輸到 12 個作業系統和 10 種架構的生產語言。
任何程式語言都需要蓬勃發展的生態系統支援。開放原始碼版本是該生態系統的種子,但自那時起,有許多人貢獻他們的時間和天賦,讓 Go 生態系統充實了許多優良教學課程、書籍、課程、部落格文章、播客、工具、整合,當然還有與「go get
」相容的可重複使用的 Go 套件。沒有這個生態系統的支持,Go 絕不會成功。
當然,生態系統需要蓬勃發展社群的支持。2019 年在世界各地舉辦了數十場 Go 研討會,同時也有超過 150 個 Go 聚會小組,超過 90,000 位成員。GoBridge 和Women Who Go 藉由指導、訓練和會議獎學金,協助將新聲帶入 Go 社群。僅在今年,他們就在工作坊中教導了數百位來自傳統上代表性不足群體的人,在工作坊中,社群成員教授和指導 Go 新手。
全球有超過 100 萬位 Go 開發人員,全世界各地公司都希望雇用更多。事實上,人們常常告訴我們學習 Go 幫助他們獲得了科技產業的第一份工作。最後,我們對 Go 最引以為傲的,並非精心設計的功能或聰明的程式碼,而是 Go 對許多人生活帶來的正面影響。我們旨在創造一門能幫助我們成為更優秀開發人員的語言,我們很興奮 Go 幫助了許多其他人。
隨著#GoTurns10,我希望每個人都能花點時間慶祝 Go 社群以及我們所達成的成就。代表 Google 的整個 Go 團隊,感謝在過去十年間加入我們的每個人。讓我們讓下一個十年更令人難以置信吧!