Google 週二公佈專為開發高擴充性、支援多處理器的應用系統之開放原始碼程式開發語言,名為 Go 。
「我從來沒用過像 Go 生產力那麼高的語言,」Google 首席工程師 Rob Pike 說。
Go 也是 Google 今年釋出的第二項語言。 7 月間 Google 推出了開發 Android 應用的變種培基語言 Simple 。
Pike 表示 Go 主要是作為系統語言,像今天的 C++或 C 。
「Go 作為開發和組譯都十分優異,我們也將原始碼釋出,因為我們認為它已夠成熟、夠強大。」
Go 前身是群組 20% 專案之一:Google 允許員工花 20% 的時間做本份工作之外的事。除了 Pike,共同發明 Go 的還包括 Robert Griesemer 、 Ken Thompson 、 Ian Taylor 和 Russ Cox 。
編譯好的 Go 程式執行速度可比美 C,而且幾乎立即編譯完成。「就像是用互動語言一樣。」
現有程式語言都不是為多核處理器或高擴充性的應用最佳化,Pike 表示 Go 被視作 Google 工程師的專用語言。
Pike 比較 Go 和 Java 的學習曲線:「大約和 Java 差不多,如果使用者可以馬上上手使用 Java,用 Go 應該也沒什麼問題。」
將 Go 以開放原始碼釋出原因之一,是希望開放原始碼社群能發展出使這項語言更好用的工具,像是 Eclipse IDE 開發環境。目前還沒有支援 Go 的 IDE 。
目前 Google 的公開程式都還沒用到 Go 來開發,但 Google 已有好幾項內部專案用它來開發。
Pike 表示 Go 在未來的 Chrome OS 會扮演什麼角色,現在都還言之過早,但他表示 Go 可和該公司執行 Web 原生程式碼的開放原始碼技術 Native Client 整合。
「Go 在瀏覽器環境下執行 Web 應用真的很優。」Pike 說。例如包含前端 JavaScript 和 C++伺服器程式碼的 Wave 利用 Go 在前後端實作都會更容易。
Go 目前有兩個編譯器,一個是 GCC 作後端的 Gccgo,和一個 64 位元及 32 位元 x86 機器專用的編譯套件(6g 和 8g)。目前 Google 正致力於 Go 對 ARM 晶片和 Android 裝置的支援。 Pike 說,目前 Go 還不能在 Android 手機做浮點運算。
