Go 部落格

Go at I/O: 常見問題解答

Andrew Gerrand
2010 年 5 月 27 日

在上週的 Google I/O 產品釋出會上,我們的小團隊在座無虛席的房間裡進行了演講,並遇到了許多 Go 程式設計師(包括現在和未來的)。特別令人欣慰的是,我們遇到了這麼多人在瞭解了 Go 的一些情況後,對其在使用過程中能夠獲得的(即時和長期的)潛在好處感到興奮。

在 I/O 期間,我們收到了很多很好的問題,在這篇博文中,我想對其中一些進行回顧和擴充套件。

Go 對生產系統的適用性如何?Go 現在已經準備好且穩定。我們很高興地報告,Google 正在使用 Go 進行一些生產系統,並且執行良好。當然,仍有改進的空間——這就是為什麼我們繼續致力於語言、庫、工具和執行時。

你們有計劃實現泛型嗎?關於泛型類功能的許多提案已經在公開和內部被提議,但截至目前,我們還沒有找到一個與語言其他部分一致的提案。我們認為 Go 的關鍵優勢之一是其簡潔性,因此我們對引入可能使語言更難理解的新功能持謹慎態度。此外,我們寫的 Go 程式碼越多(因此我們自己也越瞭解如何寫 Go 程式碼),就越覺得不需要這樣的語言特性。

你們有支援 GPU 程式設計的計劃嗎?我們目前沒有這方面的計劃,但由於 Go 是與架構無關的,所以這很有可能。啟動一個在不同處理器架構上執行的 goroutine,並使用 channel 在執行在不同架構上的 goroutines 之間進行通訊的能力,似乎是不錯的想法。

有計劃在 App Engine 下支援 Go 嗎?Go 和 App Engine 團隊都希望看到這種情況發生。一如既往,這取決於資源和優先順序,才能決定何時以及是否會成為現實。

有計劃在 Android 下支援 Go 嗎?Go 編譯器都支援 ARM 程式碼生成,所以這是可能的。雖然我們認為 Go 將是一種編寫移動應用程式的出色語言,但對 Android 的支援並不是我們正在積極研究的內容。

我能用 Go 做些什麼?Go 在設計之初就考慮到了系統程式設計。伺服器、客戶端、資料庫、快取、負載均衡器、分發器——這些是 Go 顯然有用的應用程式,也是我們在 Google 內部開始使用它的方式。然而,自從 Go 開源釋出以來,社群已經找到了該語言的各種各樣的應用。從 Web 應用到遊戲再到圖形工具,Go 有望成為一種通用的程式語言。其潛力僅受限於庫的支援,而庫的支援正在以驚人的速度改進。此外,教育工作者也表示有興趣使用 Go 來教授程式設計,認為其簡潔的語法和一致性非常適合這項任務。

感謝所有參加我們演講的人,或在辦公時間與我們交談過的人。我們希望在未來的活動中再次見到大家。

Rob 和 Russ 演講的影片可以在 YouTube 上觀看。

下一篇文章:Google I/O Go 程式設計會話影片
上一篇文章:即將舉行的 Google I/O Go 活動
部落格索引