未來的雲端計算語言?Go在Google內部崛起
前VMware雲平臺技術長Derek Collison曾斷言Go語言兩年內將成為雲端計算的主流語言,這也許有些聳人聽聞,但Go語言在Google內部確實取得了令人矚目的成績。Wired最近發表文章講述了Go語言在Google內部崛起的故事。
當一部分“老弱”程式程式碼不能正常工作時,Google就會派出負責Go語言專案的“地鼠特工隊”負責除舊迎新。
Brad Fitzpatrick在使用Google軟體最常用的功能時卡住了——下載進度條在99%的地方停下了。雖然下載失敗是很常見的問題,但Fitzpatrick卻並無遷就之意,他是地球上最懂技術的企業——Google的工程師,他不能容忍此類問題發生在Google身上。
“1k大的檔案都託管不好對Google來說是很丟人的事情,”Fitzpatrick在上週俄勒岡的開源大會上說道,“所以我在內部的Google+站點上就此問題大吐其槽。”
其實Fitzpatrick並不孤單,多年來很多人都曾抱怨dl.google.com系統不夠穩定,而該系統極其重要,處理幾乎所有Google的下載任務,包括Chrome瀏覽器安裝檔案、Android原始碼,到體積小些的JavaScript庫。
問題的根源是該檔案伺服器系統的底層程式碼的年齡已經超過五年,可謂破敗不堪。
“如果程式碼不能得到持續的關愛就會變成一堆屎,”Fitzpatrick說道。
最初的C++程式碼缺乏規範的文件,自動化測試也不達標,沒有人能搞明白它是如何工作的。人們只是不停地做一些增量改變,最後在負責維護的程式設計師眼裡,這些程式碼變成了“一坨麵條”。系統的不穩定差不多要把伺服器運營團隊逼瘋了,但是沒有人有時間重寫技術上還能使用的程式碼。於是Fitzpatrick自告奮勇接手這個任務,他來自Google的一個25位工程師組成的團隊——地鼠隊,負責開發一種定製化的程式語言——Go.
Fitzpatrick對重寫依然在生產環境使用的程式碼感到非常興奮,因為他終於有機會能在真實的系統中測試Go了。
Dennis Ritchie (站立者)與 Ken Thompson在最早的小型機 PDP-11 前工作, 1972年 Photo:Courtesy of Bell Labs
Go由電腦科學的三位大神Robert Griesemer、Rob Pike和Ken Thompson共同建立。Thompson也是Unix作業系統的聯合開發者,同時也是C語言之父。Pike則是Thompson在貝爾實驗室的同事。Griesemer因在Java編譯器方面的工作而廣為人知。
Go的初衷是實現即能像古怪的電信語言Erlang或流行的伺服器端javaScript平臺Node.js那樣處理大規模併發使用者,同時又能像C++那樣迅捷。一個很夠處理大規模併發下載請求的分散式檔案系統應當是最能發揮Go長處的應用。
事實也是如此,新的用Go編寫的dl.google.com軟體程式碼上簡潔不少,記憶體開銷也更少,更重要的是,更加可靠。Fitzpatrick表示在開發過程中更加深入瞭解了Go,開發了一個新的開源快取庫,同時也發現了Go語言的一些不足。
“很榮幸我是第一個體驗此類痛點的人,”在接受開源大會上接受採訪時Fitzpatrick表示,Google的團隊在用Go處理叢集和檔案傳輸時進行了很多改進。專案大獲成功,如今Go團隊開始經常幫助其他團隊完成小專案。正如Griesemer所言:這隻“地鼠特工隊”對研究團隊、Chrome團隊、客戶調查團隊以及其他“有關團隊”也提供了很多幫助。
雖然Go語言在Google內部戰績彪炳,但是“地鼠特工隊”並未在Google內部呼籲用Go全面取代其他程式語言。不少團隊不希望改變目前使用的語言,也不願做重複開發。Google開源經理Chris DiBona認為:對於不同的任務我們會使用最好的軟體來完成,無論這些軟體是Java、Python或是什麼別的語言編寫的。對於這一點,Fitzpatrick也表示贊同。
Go語言目前在Google以外的應用還很少,但在業界依然引起了重視。
前VMware雲平臺技術長Derek Collison曾斷言Go語言兩年內將成為雲端計算的主流語言:管理層和基礎架構層決定了雲端計算的交付模型,兩年內大多數雲程式都將用Go語言編寫。
此外,網遊公司Zynga和NTT DoCoMo都在使用的開源資料庫Couchbase就是部分用Go編寫的,其開發者還用到了Erlang、C和C++。但是Couchbase的軟體架構師J.Chris Anderson表示Go是最棒的:我們發現Go的併發模型與Erlang、C和C++的幾乎一樣強大,而且是對開發者非常友好的一種系統。
Collison對Go的預言也許有些誇大,但他新創立的雲端計算公司Apcera確實已經在使用Go語言,而且目前Go語言已經有了一個重大的成功案例,那就是Google自己,新的dl.google.com系統的可靠性得到了大幅提升。
Go語言崛起在即,對這門語言還不瞭解的程式設計師,趕緊看看許式偉老師的《Go語言程式設計》補補吧。
原文地址:http://www.wired.com/wiredenterprise/2013/07/gopher
譯文轉自IT經理網:http://www.ctocio.com/ccnews/13061.html
相關文章
- 邊緣計算與雲端計算的未來
- 雲端計算的前世今生與未來
- 雲端計算真的是未來嗎
- 雲端計算的6個未來趨勢
- 邊緣計算 VS 雲端計算,誰才是未來?
- 雲端計算成為未來趨勢
- Google的Go語言速度提升Go
- Go 語言是如何計算 len() 的?Go
- 雲端計算崛起,大型機已死?
- 探索計算機內部的神秘語言:二進位制的魅力計算機
- 未來10年雲端計算發展前景如何?雲端計算的優勢在哪裡?
- 未來的網際網路是雲端計算還是星計算
- Go是Google的語言,而不是我們的語言Go
- 未來雲端計算市場將重新洗牌 - erikbern
- 惠普CTO預言:雲端計算驅動科技未來
- 雲端計算的未來怎麼發展?怎麼學習雲端計算相關技術?
- 學習雲端計算怎麼樣?未來10年雲端計算發展前景如何?
- Google釋出go程式語言Go
- 雲端計算前景如何?近些年雲端計算的崛起呈現怎樣的勢頭?
- 為什麼分散式雲是雲端計算的未來?分散式
- 關於雲端計算未來的五大預測
- 微軟的將來在於Web和雲端計算微軟Web
- 安全聚焦:虛擬化雲端計算將在未來掀起黑客攻擊潮黑客
- 學習雲端計算好嗎?未來10年雲端計算發展前景如何?
- 雲端計算未來 5 年發展方向大盤點
- 雲端計算的未來是超市模式還是電廠模式?模式
- 雲端計算怎樣才能改變IT運維管理的未來運維
- 雲端計算時代最具潛力的12種程式語言
- Android在未來對Java 8語言功能的支援AndroidJava
- 阿里巴巴雲原生,在許諾雲端計算一個什麼樣的未來?阿里
- 中立玩家UCloud奪食戰:苦熬雲端計算盈利未來Cloud
- 雲端計算的未來在哪?破解亞馬遜雲科技增長神話亞馬遜
- 盤點十個最炫酷的雲端計算程式語言
- Google CEO施密特:雲端計算將替代網格計算Go
- 轉享:AppengineJS:Javascript風格來到google雲端計算APPJSJavaScriptGo
- 當紅開發語言Go,真的是未來的技術主流嗎?Go
- 【計算幾何】點在多邊形內部
- DSL和麵向語言程式設計的崛起程式設計