Go 部落格
Go 四年
今天標誌著 Go 作為開源專案迎來四週年紀念。

我們不打算談論我們的技術進展(幾周後釋出 Go 1.2 時將有很多內容可講),而是希望藉此機會探討 Go 社群的成長情況。
我們先來看一張圖

這張圖顯示了過去四年中 Google 搜尋“golang”一詞的增長情況。請注意,在 2012 年 3 月左右,即 Go 1.0 釋出時,曲線出現了一個拐點。如果這些搜尋量可以很好地反映興趣程度,那麼很明顯,自發布以來,人們對 Go 的興趣顯著增長,尤其是在過去兩年中。
但這種興趣來自哪裡呢?
開源社群已經接受了 Go,我們的社群維基列出了數百個 Go 專案。其中一些熱門專案
-
Docker 是一個用於在輕量級容器中打包和執行應用程式的工具。Docker 可以輕鬆地隔離、打包和部署應用程式,深受系統管理員的喜愛。其建立者 Solomon Hykes 認為 Go 的標準庫、併發原語和易於部署是關鍵因素,並表示“簡單地說,如果 Docker 沒有用 Go 編寫,就不會如此成功。”
-
Packer 是一個用於自動化建立虛擬機器或雲服務部署的機器映象的工具。其作者 Mitchell Hashimoto 目前正在開發另一個 Go 專案serf,這是一個去中心化的發現服務。與 Docker 一樣,這些專案都有助於管理大規模、基於叢集的服務。
-
Bitly 的NSQ 是一個為容錯和高可用性設計的即時分散式訊息平臺,它在 bitly 和許多其他公司中得到了實際應用。
-
Canonical 的JuJu 基礎設施自動化系統已用 Go 重寫。專案負責人 Gustavo Niemeyer 表示:“Go 並非某個單一方面的特性使其成為一個有吸引力的選擇,而是精心組織的、精心製作的小塊的集合。”
-
其他熱門專案包括biogo、Gorilla Web Toolkit、groupcache、Mozilla 的heka、kv 和ql 輕量級儲存系統,以及Sky 行為資料庫。
但這僅僅是冰山一角。高質量的開源 Go 專案數量驚人。多產的 Go 駭客Keith Rarick 曾精闢地說道:“Go 生態系統僅四年就達到了令人驚歎的水平。將 2013 年的 Go 與 1995 年的 Python 或 1999 年的 Java 進行比較。或者 1987 年的 C++!”
企業也樂於使用 Go。Go 使用者維基頁面列出了數十個成功案例(如果您使用 Go,請新增到其中)。以下是一些示例:
-
CloudFlare 完全用 Go 構建了其分散式 DNS 服務,並正在將其每分鐘 TB 級的日誌基礎設施遷移到該語言。程式設計師 John Graham-Cumming 說:“我們發現 Go 非常適合我們的需求:熟悉的語法、強大的型別系統、強大的網路庫和內建併發的結合意味著越來越多的專案在這裡用 Go 構建。”
-
SoundCloud 是一個音訊分發服務,擁有“數十個 Go 系統,幾乎觸及網站的每個部分,並在許多情況下為從上到下的功能提供支援。”工程師 Peter Bourgon 說:“Go 表明,其他語言和生態系統中的那些令人煩惱的負擔——開發者已經學會了忍受,而且往往非常惱火——並非現代程式設計的必需品。使用 Go,我與我的工具之間擁有簡單且非對抗性的關係,從開發到生產。”
-
ngrok 服務允許 Web 開發者遠端訪問他們的開發環境。其作者 Alan Shreve 表示,“ngrok 專案的成功在很大程度上歸功於選擇 Go 作為實現語言”,並引用 Go 的 HTTP 庫、效率、跨平臺相容性和易於部署作為主要優勢。
-
Poptip 提供社交分析服務,產品工程師 Andy Bonventre 說:“最初只是嘗試用 Go 編寫單個服務,結果我們幾乎將整個基礎設施都遷移到了 Go。我最喜歡 Go 的不是語言的特性,而是對工具、測試和其他使編寫大型應用程式更易於管理的元素的關注。”
-
音樂協作初創公司Splice 選擇用 Go 構建其服務。聯合創始人 Matt Aimonetti 說:“我們認真研究並考慮了許多程式語言,但 Go 的簡潔性、效率、理念和社群征服了我們。”
-
當然,Google 的各個工程團隊也在轉向 Go。工程師 Matt Welsh 最近分享了他用 Go 重寫大型生產服務的經驗。其他值得注意的公開示例包括 YouTube 的vitess 專案和dl.google.com。我們希望很快能分享更多此類故事。
2012 年 9 月,Apcera 執行長 Derek Collison 預測:“在 [基礎設施即服務]、編排和 [平臺即服務] 領域,Go 將在 24 個月內成為主流系統工作語言。”看看上面的列表,很容易相信這一預測。
那麼,您如何參與進來呢?無論您是經驗豐富的 Go 程式設計師還是剛剛對 Go 產生興趣,都有許多方式可以開始融入 Go 社群。
-
加入您最近的 Go 使用者組,當地的 gophers 會在那裡分享他們的知識和經驗。這些組織遍佈世界各地。我個人曾在阿姆斯特丹、柏林、哥德堡、倫敦、莫斯科、慕尼黑、紐約、巴黎、舊金山、首爾、斯德哥爾摩、悉尼、東京和華沙的 Go 小組發表演講;但還有更多!
-
建立或貢獻一個開源 Go 專案(或貢獻 Go 本身)。(如果您正在構建某項內容,我們很樂意在Go 郵件列表上聽到您的聲音。)
-
如果您在 2014 年 2 月份在歐洲,請參加 FOSDEM 2014 的 Go Devroom。
-
參加GopherCon,這是第一個大型 Go 會議,將於 2014 年 4 月在丹佛舉行。該活動由Gopher Academy 組織,他們還經營著一個Go 工作板。
Go 團隊對 Go 社群過去四年的發展感到驚歎。我們很高興看到這麼多 Go 語言的優秀應用,並非常感激能與我們優秀且敬業的貢獻者合作。謝謝大家。
為未來的四年乾杯!
下一篇文章:Go 語言中的文字規範化
上一篇文章:Go 語言中的字串、位元組、Unicode 碼點和字元
部落格索引