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