Go語言:成長的十年

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Go語言之父,Google大神Rob Pike代表Go語言的另外兩位締造者Robert Griesemer和Ken Thompson在自己的部落格上發表了一篇名為《Go: Ten years and climbing》的文章,用以紀念Go語言從最初的設計idea起到目前的十年發展。筆者讀完後,也是深有感觸,因此在這裡粗略翻譯一下全文,希望能有更多的程式員加入到Gopher行列中來。

譯文全文如下:


Drawing Copyright 2017 Renee French

本周是建立Go語言十周年的紀念日。

記得第一次關於這門語言設計的討論是在2007年9月20日,一個周四的下午。進而在第二天的下午兩點,我、Robert Griesemer以及Ken Thompson在Google山景城總部43#樓的一間名為Yaounde的會議室裡又組織進行了一場有關這門語言設計的會議。這門語言的名字誕生於9月25日,在第一封有關語言設計的mail中可以看到一些關於命名的設計考量:

    Subject: Re: prog lang discussion    From: Rob 'Commander' Pike    Date: Tue, Sep 25, 2007 at 3:12 PM    To: Robert Griesemer, Ken Thompson    i had a couple of thoughts on the drive home.    1. name    'go'. you can invent reasons for this name but it has nice properties.    it's short, easy to type. tools: goc, gol, goa. if there's an interactive    debugger/interpreter it could just be called 'go'. the suffix is .go    ...

(將語言命名為Go這事兒值得一提;“golang”來自於這門語言的web網站地址(因為go.com當時已經是迪斯尼的一個web網站了),但卻不是語言的恰當名字。)

Go項目將2009年11月10日,即Go項目正式開源的那天作為其官方生日。最初Go項目託管在code.google.com上,幾年後遷移至GitHub。不過,現在我們要回到最初的語言概念構建階段,即那之前的兩年,這可以讓我們做更進一步地回顧,以更久遠的視角,見證一些語言早期的曆史事件。

Go開發過程中的第一個驚喜是收到下面這封mail資訊:

    Subject: A gcc frontend for Go    From: Ian Lance Taylor    Date: Sat, Jun 7, 2008 at 7:06 PM    To: Robert Griesemer, Rob Pike, Ken Thompson    One of my office-mates pointed me at http://.../go_lang.html .  It    seems like an interesting language, and I threw together a gcc    frontend for it.  It's missing a lot of features, of course, but it    does compile the prime sieve code on the web page.

Ian Lance Taylor的加入以及第二個編譯器實現(gccgo)在帶來震驚的同時,也伴隨著喜悅。這對Go項目來說不僅僅是鼓勵,更是一種對可行性的證明。有了語言的第二個實現對確定語言規範和標準庫的過程是至關重要的,同時也有助於Go保證其高可移植性的承諾。

雖然Ian的辦公室離我們不遠,但在看到這封mail之前我們從未謀面。不過,從那之後,Ian Lance Taylor便成為了Go語言及工具設計和實現的核心人物。

Russ Cox也是在2008年加入到剛成立不久的Go語言Team Dev的。隨著他的加入,他的一些天賦也隨即在語言設計和實現中展現出來。Russ發現Go method的通用性意味著一個函數也可以擁有自己的方法,這直接導致了http.HandlerFunc的出現,這是一個我們所有人都未曾想到的結果。Russ還在當時設計的基礎上提出了一些更泛化的想法,比如io.Reader和io.Writer介面,奠定了所有I/O庫的整體結構。

Jini Kim是我們最初的產品經理,他招來了安全專家Adam Langley來協助我們將Go推向Google外面的世界。Adam為我們做了許多不為外人所知的事情,包括建立最初golang.org網站的web頁面以及build dashboard。不過他最大的貢獻當然要屬cryptographic庫了。起先,對於我們中的一部分人來說,這個庫無論是規模還是複雜度,和其他庫比起來都不成比例。但是就是這個庫在後期成為了很多重要的網路和安全軟體的基礎,並且成為了Go語言開發曆史的關鍵組成部分。像Cloudflare這樣的網路基礎設施供應商就重度依賴Adam在Go項目中的工作,Internet也因此變得更好。因此,我們由衷感謝他的工作。

事實上,許多公司在早期使用Go進行開發,尤其是初創公司。其中一些公司成為了雲端運算的巨頭,其中就有一家這樣的公司,它現在叫Docker。這家公司使用Go語言,並催化出計算領域的容器行業,進而導致了像Kubernetes這樣的項目出現。今天我們可以說Go是容器語言,這是另一個我們完全沒有預料到的結果。

不過,Go語言在雲端運算領域起到作用更大。2015年3月,Donnie Berkholz在為RedMonk撰寫的一篇文章中宣稱:Go是“雲端運算基礎設施新興語言”。幾乎與此同時,Apcera的Derek Collison說:Go已經是雲端運算語言了。在那個時候,這也許還不是事實。但Berkholz所使用的“新興”一詞卻恰如其分的表明了Go在當時的地位。

今天,Go已經成為雲端運算語言。想象一下:一個只有10歲的年輕程式設計語言已經成為這樣一個規模龐大且不斷髮展的行業的主導者,這樣的成功以前只是存在於在想象中。如果你覺得“主導”這個詞太過強勢的話,讓我們來看看中國互連網行業。一段時間以來,Go在中國地區大量使用的資料一度讓我們誤認為Google趨勢圖出現了某些錯誤,但是凡是去過中國,參加過中國區Go語言大會的人都可以證實:Google趨勢圖的資料是真的,Go在中國的使用非常火爆!

簡而言之,Go語言的十年發展為我們帶來了許多裡程碑。 最令人驚訝的是我們現在的位置:保守估計表明至少有50萬Go程式員。 當前面那封為Go命名的郵件發送時,憧憬能有有五十萬gopher的想法聽起來會感覺很荒唐。 但就在此時此刻這裡,我們不僅有了50w gopher,並且數量還在持續增長。

說到gophers,很高興看到來自Renee French想法的吉祥物Go Gopher(地鼠),不僅成為了一個非常受人喜愛的作品,而且也是世界各地Go程式員的象徵。許多各個地區頂級的Go大會都被稱為GopherCons,因為他們聚集了來自世界各地的gophers。

Gopher大會正在迅速發展。第一次大會的舉辦只不過是三年前的事情,但今天在全世界各地有很多這樣的Go大會。並且還有無數小的本地“聚會(meetups)”。在任何某一天,世界上某個地方都會有不止一個gopher群體在進行有關Go的分享。

回顧過去十年的Go設計和開發,Go社區的發展是驚人的。會議和聚會的數量、長長的且不斷增加的Go項目貢獻者名單、大量用Go實現的開放原始碼存放庫、使用Go的公司數量等等,細思恐(吃驚)極!

對於我們三個人,Robert, Rob和Ken,當初只是想讓我們的編程生活更輕鬆一些,而如今,我們難以置信地、欣慰地看到我們的工作已經開始起作用了。

未來十年會帶來什麼呢?

- Rob Pike, with Robert Griesemer and Ken Thompson

微博:@tonybai_cn
公眾號:iamtonybai
github.com: https://github.com/bigwhite

2017, bigwhite. 著作權.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.