Go 語言起源 2007 年,并于 2009 年正式對外發(fā)布。它從 2009 年 9 月 21 日開始作為谷歌公司 20% 兼職項目,即相關(guān)員工利用 20% 的空余時間來參與 Go 語言的研發(fā)工作。該項目的三位領(lǐng)導(dǎo)者均是著名的 IT 工程師:Robert Griesemer,參與開發(fā) Java HotSpot 虛擬機;Rob Pike,Go 語言項目總負(fù)責(zé)人,貝爾實驗室 Unix 團隊成員,參與的項目包括 Plan 9,Inferno 操作系統(tǒng)和 Limbo 編程語言;Ken Thompson,貝爾實驗室 Unix 團隊成員,C 語言、Unix 和 Plan 9 的創(chuàng)始人之一,與 Rob Pike 共同開發(fā)了 UTF-8 字符集規(guī)范。自 2008 年 1 月起,Ken Thompson 就開始研發(fā)一款以 C 語言為目標(biāo)結(jié)果的編譯器來拓展 Go 語言的設(shè)計思想。
這是一個由計算機領(lǐng)域 “發(fā)明之父” 所組成的黃金團隊,他們對系統(tǒng)編程語言,操作系統(tǒng)和并行都有著非常深刻的見解
http://wiki.jikexueyuan.com/project/the-way-to-go/images/1.1.designers_of_Go.jpg?raw=true" alt="" />
圖 1.1 Go 語言設(shè)計者:Griesemer、Thompson 和 Pike
在 2008 年年中,Go 語言的設(shè)計工作接近尾聲,一些員工開始以全職工作狀態(tài)投入到這個項目的編譯器和運行實現(xiàn)上。Ian Lance Taylor 也加入到了開發(fā)團隊中,并于 2008 年 5 月創(chuàng)建了一個 gcc 前端。
Russ Cox 加入開發(fā)團隊后著手語言和類庫方面的開發(fā),也就是 Go 語言的標(biāo)準(zhǔn)包。在 2009 年 10 月 30 日,Rob Pike 以 Google Techtalk 的形式第一次向人們宣告了 Go 語言的存在。
直到 2009 年 11 月 10 日,開發(fā)團隊將 Go 語言項目以 BSD-style 授權(quán)(完全開源)正式公布了 Linux 和 Mac OS X 平臺上的版本。Hector Chu 于同年 11 月 22 日公布了 Windows 版本。
作為一個開源項目,Go 語言借助開源社區(qū)的有生力量達(dá)到快速地發(fā)展,并吸引更多的開發(fā)者來使用并改善它。自該開源項目發(fā)布以來,超過 200 名非谷歌員工的貢獻者對 Go 語言核心部分提交了超過 1000 個修改建議。在過去的 18 個月里,又有 150 開發(fā)者貢獻了新的核心代碼。這儼然形成了世界上最大的開源團隊,并使該項目躋身 Ohloh 前 2% 的行列。大約在 2011 年 4 月 10 日,谷歌開始抽調(diào)員工進入全職開發(fā) Go 語言項目。開源化的語言顯然能夠讓更多的開發(fā)者參與其中并加速它的發(fā)展速度。Andrew Gerrand 在 2010 年加入到開發(fā)團隊中成為共同開發(fā)者與支持者。
在 Go 語言在 2010 年 1 月 8 日被 Tiobe(聞名于它的編程語言流行程度排名)宣布為 “2009 年年度語言” 后,引起各界很大的反響。目前 Go 語言在這項排名中的最高記錄是在 2017 年 1 月創(chuàng)下的第13名,流行程度 2.325%。
從 2010 年 5 月起,谷歌開始將 Go 語言投入到后端基礎(chǔ)設(shè)施的實際開發(fā)中,例如開發(fā)用于管理后端復(fù)雜環(huán)境的項目。有句話叫 “吃你自己的狗食”,這也體現(xiàn)了谷歌確實想要投資這門語言,并認(rèn)為它是有生產(chǎn)價值的。
Go 語言的官方網(wǎng)站是 golang.org,這個站點采用 Python 作為前端,并且使用 Go 語言自帶的工具 godoc 運行在 Google App Engine 上來作為 Web 服務(wù)器提供文本內(nèi)容。在官網(wǎng)的首頁有一個功能叫做 Go Playground,是一個 Go 代碼的簡單編輯器的沙盒,它可以在沒有安裝 Go 語言的情況下在你的瀏覽器中編譯并運行 Go,它提供了一些示例,其中包括國際慣例 “Hello, World!”。
更多的信息詳見 github.com/golang/go,Go 項目 Bug 追蹤和功能預(yù)期詳見 github.com/golang/go/issues。
Go 通過以下的 Logo 來展示它的速度,并以囊地鼠(Gopher)作為它的吉祥物。
http://wiki.jikexueyuan.com/project/the-way-to-go/images/1.2.Go_logo.jpg?raw=true" alt="" />
圖1.2 Go 語言 Logo
谷歌郵件列表 golang-nuts 非?;钴S,每天的討論和問題解答數(shù)以百計。
關(guān)于 Go 語言在 Google App Engine 的應(yīng)用,這里有一個單獨的郵件列表 google-appengine-go,不過 2 個郵件列表的討論內(nèi)容并不是分得很清楚,都會涉及到相關(guān)的話題。go-lang.cat-v.org/ 是 Go 語言開發(fā)社區(qū)的資源站,irc.freenode.net 的#go-nuts 是官方的 Go IRC 頻道。
@golang 是 Go 語言在 Twitter 的官方帳號,大家一般使用 #golang 作為話題標(biāo)簽。
這里還有一個在 Linked-in 的小組:www.linkedin.com/groups?gid=2524765&trk=myg_ugrp_ovr。
Go 編程語言的維基百科:en.wikipedia.org/wiki/Go_(programming_language)
Go 語言相關(guān)資源的搜索引擎頁面:gowalker.org
Go 語言還有一個運行在 Google App Engine 上的 Go Tour,你也可以通過執(zhí)行命令 go install go-tour.googlecode.com/hg/gotour 安裝到你的本地機器上。對于中文讀者,可以訪問該指南的 中文版本,或通過命令 go install https://bitbucket.org/mikespook/go-tour-zh/gotour 進行安裝。