Go 部落格

GopherChina 旅行報告

Robert Griesemer
2015 年 7 月 1 日

我們早就知道 Go 在中國的流行程度超過其他任何國家。根據 Google Trends 的資料,對“golang”一詞的大多數搜尋都來自中華人民共和國,而非其他地方。其他人也對相同的觀察結果進行了猜測,然而到目前為止,我們對這一現象的具體資訊仍然很少。

中國首屆 Go 大會GopherChina似乎是一個絕佳的機會,可以透過讓一些西方 Gopher 踏上中國土地來探索這一情況。一份正式的邀請使之成為現實,我決定接受邀請,並就 gofmt 對軟體開發的影響發表演講。

你好,上海!

會議於四月的一個週末在上海浦東軟體園的浦軟大廈舉行,從上海市中心乘坐地鐵一小時內即可輕鬆抵達。會議模仿了GopherCon,採用單軌道模式,所有演講都在一個可容納約 400 名參會者的會議室進行。會議由志願者組織,由謝孟軍(Asta Xie)牽頭,並得到了主要行業公司的有力贊助。組織者表示,由於場地限制,許多希望參加的人未能如願。

歡迎委員會與主要組織者謝孟軍(左起第二位)。

每位參會者都收到一個袋子,裡面裝著必不可少的 GopherChina T恤衫、各種贊助商資訊手冊、貼紙以及偶爾出現的毛絨玩具(不過沒有毛絨 Gopher)。至少有一家第三方供應商在銷售技術書籍,其中包括幾本原創(非從英文翻譯)的 Go 書籍。

Go 書籍!

初步印象是,參會者的平均年齡相當年輕,這使得現場氣氛非常熱烈,而且活動似乎組織得很好。

除了我的演講,所有報告都以普通話進行,因此我無法聽懂。主要組織者謝孟軍透過在我耳邊低聲進行的幾次同聲傳譯提供幫助,偶爾出現的英文幻燈片也提供了一些額外線索:“69GB”即使不懂普通話也很醒目(稍後會詳細介紹)。因此,我最終只聽了幾場報告,而將大部分時間花在主會議室外與參會者交流。然而,從幻燈片來看,大多數報告的質量很高,與我們去年在丹佛 GopherCon 的體驗相當。每個演講都有一個小時的時間,這提供了充足的技術細節,並且熱情的聽眾提出了許多(幾十個)問題。

正如所料,許多報告都關於 Web 服務、移動應用後端等等。其中一些系統無論從何種標準來看都非常龐大。例如,周洋的報告描述了一個大型內部訊息系統,由中國主要的軟體公司奇虎 360使用,全部用 Go 編寫。該報告討論了他的團隊如何設法將原始的 69GB (!) 堆大小以及由此導致的 3-6 秒的長時間 GC 停頓減少到更易於管理的數字,以及他們如何在數千臺機器的叢集上,每臺機器執行數百萬個 goroutines。計劃將來發表一篇客座部落格文章更詳細地描述該系統。

週六座無虛席的會議室。

在另一場報告中,來自DaoCloud郭峰講述了他們的公司如何使用 Go 來實現他們所稱的應用“持續交付”。DaoCloud 負責將託管在 GitHub(及中國本土同類平臺)上的軟體自動遷移到雲端。軟體開發者只需在 GitHub 上推送新版本,DaoCloud 就會處理其餘工作:執行測試、將其容器化,並使用您首選的雲服務提供商進行部署。

幾位演講者來自知名的主要軟體公司(我把會議議程展示給非技術人員看,他們也很容易認出其中幾家公司的名字)。與美國相比,Go 在中國似乎不僅在新進入者和初創公司中非常流行,而且也大量地進入了大型組織,並以我們在其他地方才剛開始看到的規模被採用。

由於我自己並非 Web 服務專家,我在演講中稍微偏離了大會的總體主題,談論了gofmt以及其廣泛使用如何開始不僅塑造了對 Go 的期望,也塑造了對其他語言的期望。我用英文演講,但事先將幻燈片翻譯成了普通話。由於存在顯著的語言障礙,我預計我的演講本身不會有太多問題。因此,我決定縮短演講時間,留出充足的時間回答關於 Go 的普遍問題,這一點受到了聽眾的讚賞。

在中國,任何社交活動沒有美食就不完整。

會議結束幾天後,我應成立四年的初創公司七牛(“Seven Bulls”)CEO徐偉的邀請進行了訪問,訪問由謝孟軍協助並翻譯。七牛是一家為移動應用提供雲端儲存服務的公司;徐偉在大會上做了報告,他恰好也是最早的中文 Go 書籍之一的作者(上圖中最左邊的那本)。

七牛大堂,工程部。

七牛是一家非常成功的全 Go 公司,擁有約 160 名員工,服務於超過 150,000 家公司和開發者,儲存檔案超過 500 億個,且每天增長超過 5 億個檔案。當被問及 Go 在中國成功的原因時,徐偉很快回答:PHP 在中國非常流行,但相對較慢,不適合大型系統。與美國一樣,大學教授 C++ 和 Java 作為主要語言,但對於許多應用來說,C++ 過於複雜,而 Java 過於臃腫。他認為,Go 現在扮演了傳統上屬於 PHP 的角色,但 Go 執行速度快得多,型別安全,並且更容易擴充套件。他喜歡 Go 簡單易用且應用易於部署的事實。他認為這種語言對他們來說“完美”,他的主要需求是推薦或甚至標準化的包來輕鬆訪問資料庫系統。他確實提到他們過去遇到過 GC 問題,但能夠解決。希望我們即將釋出的 1.5 版本能解決這個問題。對於七牛來說,Go 正好在正確的時間、正確的(開源)環境出現。

謝孟軍表示,七牛隻是中國眾多使用 Go 的公司之一。阿里巴巴、百度、騰訊和微博等大公司現在都以某種形式使用 Go。他指出,雖然上海和像蘇州這樣的周邊城市是高科技中心,但在北京地區有更多的軟體開發者。謝孟軍希望在 2016 年在北京組織一個規模更大(1000 人,也許 1500 人)的後續會議。

看來我們已經找到了中國的 Go 使用者:他們無處不在!

部分 GopherChina 資料(包括影片)現在與 Go 課程一起可在 第三方網站上獲取

下一篇文章:奇虎 360 與 Go
上一篇文章:Go 中的可測試示例
部落格目錄