许式伟《Go语言编程》章节摘录:Go语言简史
提起Go語言的出身,我們就必須將我們飽含敬意的眼光投向持續推出驚世駭俗成果的貝爾實驗室。貝爾實驗室已經走出了多位諾貝爾獎獲得者,一些對于現在科技至關重要的研究成果,比如晶體管、通信技術、數碼相機的感光元件CCD、光電池等都源自貝爾實驗室。該實驗室在科技界的地位可想而之,是一個毫無爭議的科研圣地。
這里我們重點介紹一下貝爾實驗室中一個叫計算科學研究中心的部門對于操作系統和編程語言的貢獻。回溯至上世紀的1969年(估計大部分讀者那時候都還沒出世),肯?湯普遜(Ken Thompson)和丹尼斯?里奇(Dennis Ritchie)在貝爾實驗室的計算科學研究中心里開發出了UNIX這個大名鼎鼎的操作系統,還因為開發UNIX而衍生出了一門同樣赫赫有名的編程語言,C語言。對于很大一部分人而言,UNIX就是操作系統的鼻祖,C語言也是計算機課程中最廣泛使用的編程語言。UNIX和C語言在過去的幾十年以來已經造就了無數的成功商業故事,比如曾在90年代如日中天的太陽微系統(Sun MicroSystems),現在正如日中天的蘋果的Mac OS X操作系統其實也可以認為只是UNIX的一個變種(FreeBSD)。
雖然已經取得了如此巨大的成就,貝爾實驗室的這幾個人并沒有因此而沉浸在光環中止步不前。他們從上世紀80年代又開始了一個名為Plan 9的操作系統研究項目,目的就是解決UNIX中的一些問題,發展出一個UNIX的后續替代系統。在之后的幾十年中,該研究項目又演變出了另一個叫Inferno的項目分支,以及一個名為Limbo的編程語言。
Limbo是用于開發運行在小型計算機上的分布式應用的編程語言。它支持模塊化編程,編譯期和運行時的強類型檢查,進程內基于具有類型的通信通道,原子性垃圾收集,和簡單的抽象數據類型。它被設計為:即便是在沒有硬件內存保護的小型設備上,也能安全運行。
Limbo語言被認為是Go語言的前身,不僅僅因為是同一批人設計的語言,而是實際上Go語言確實從Limbo語言中繼承了眾多優秀的特性。
貝爾實驗室后來經歷了多次的動蕩,包括肯?湯普遜在內的Plan 9項目原班人馬加入了Google。在Google,他們創造了Go語言。早在2007年9月,Go語言還是這幫大牛的20%自由時間的實驗項目。幸運的是,到了2008年5月,Google發現了Go語言的巨大潛力,從而開始全力支持這個項目,讓這批人可以全身心投入Go語言的設計和開發工作。Go語言的第一個版本在2009年11月正式對外發布,并在此后的兩年內快速迭代,發展迅猛。第一個正式版本的Go語言于2012年3月28日正式發布,讓Go語言迎來了第一個引人矚目的里程碑。
基于Google對開源的一貫擁抱態度, Go語言也自然而然地選擇了開源方式發布,并使用BSD授權協議。任何人可以查看Go語言的所有源代碼,并可以為Go語言發展而奉獻自己的力量。
Google作為Go語言的主推者,并沒有簡簡單單地把語言推給開源社區了事,不僅組建了一個獨立的小組全職開發Go語言,還在自家的服務中逐步增加對Go語言的支持,比如對于Google有戰略意義的云計算平臺GAE(Google AppEngine),很早就開始支持Go語言。按目前的發展態勢,在Google內部Go語言有逐漸取代Java和Python主流地位的趨勢。在Google的更多產品中,我們將看到Go語言的蹤影,比如Google最核心的搜索和廣告業務。
在本書的序中,已經清晰詮釋了為什么在語言泛濫的時代Google還要設計和推出一門新的編程語言。按照已經發布的Go語言的特性,我們有足夠的理由相信Google推出此門新編程語言絕不僅僅是簡單的跑馬圈地運動,而是為了解決切實的問題。
讓我們再來看看Go語言的主要作者們:
- 肯?湯普遜(Ken Thompson,http://en.wikipedia.org/wiki/Ken_Thompson):設計了B語言和C語言,創建了Unix和Plan 9操作系統,1983年圖靈獎得主,Go的共同作者。
- 羅布?派克(Rob Pike,http://en.wikipedia.org/wiki/Rob_Pike):Unix小組的成員,參與Plan 9和Inferno操作系統,參與 Limbo和Go語言的研發。《UNIX編程環境》作者之一。
- 羅伯特?格里澤默(Robert Griesemer):曾協助制作Java的HotSpot編譯器和Chrome瀏覽器的JavaScript引擎V8。
- 拉斯?考克斯(Russ Cox,http://swtch.com/~rsc/):參與Plan 9操作系統的開發,Google Code Search項目負責人。
- 伊安?泰勒(Ian Lance Taylor):GCC社區的活躍人物。gold連接器和GCC過程間優化LTO的主要設計者,Zembu公司的創始人。
- 布拉德?菲茨帕特里克(Brad Fitzpatrick,http://en.wikipedia.org/wiki/Brad_Fitzpatrick):LiveJournal 的創始人,著名開源項目memcached的作者。
雖然我們這里只列出了一部分,大家已經可以看出這個語言開發團隊的空前強大。這讓我們在為Go語言的優秀特性而興奮之外,還非常看好這門語言的發展前景。
本文摘自《Go語言編程》
?
轉載于:https://www.cnblogs.com/turingbooks/archive/2012/08/02/2620199.html
總結
以上是生活随笔為你收集整理的许式伟《Go语言编程》章节摘录:Go语言简史的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: void指针的用法
- 下一篇: [代码]HDU 4335 What is