跳轉到內容

從零開始學 Go/Go 的起源

來自華夏公益教科書,開放的書籍,開放的世界


到了千禧年之交,所有突出的“標準”程式語言都已經到位,其中大多數已經存在了一段時間。新的程式語言主要是對現有語言的變體,以某種方式專門面向特定領域。這本身並不是什麼新鮮事 - 即使是強大的 C 語言也是基於一種叫做 B 的語言。但是,一段時間以來已經積累了一些壓力 - 舊的標準存在一些缺陷,這些缺陷已經得到了改進,但一些改進版本令人困惑,難以使用,或者編譯速度很慢。有些甚至是為了與解決問題無關的目的而設計的,例如建立原本是開放版權語言的專有版本。

任何程式語言從頭開始構建的程度都是有爭議的,但 Google 試圖建立一個“新的主要系統語言”。Go 的設計考慮了 Google 的內部需求 - 主要是在快速構建和部署,以及由沒有其他協調的團隊輕鬆使用。

Robert Griesemer 之前曾在 Sawzall 工作,Sawzall 是一種用於管理 Google 網路檔案系統的程式語言,他還為 APL、Java 和 Smalltalk 開發瞭解釋器或虛擬機器。

Robert Pike 共同建立了 UTF-8 標準,參與了 Sawzall 和 Limbo 語言的建立,併為 Unix 開發了大量程式碼。

Ken Thompson 共同建立了 Unix。他對計算的貢獻數不勝數。

2007 年,這個團隊勾勒出了 Go 的初始目標。在 2008 年,他們和其他人員共同構建了原型庫和編譯器,直到最終在 2009 年 11 月 10 日,Go 公開發布。經過幾年的改進,在 2012 年 3 月 28 日,版本 1.0 釋出。退出測試版,準備進行標準化支援。

現在已經有了文件和社群(參見現有資源),但截至本書最初撰寫時,還沒有一篇簡短的入門書籍。因此,我們在這裡。

華夏公益教科書