前VMware云平臺首席技術官Derek Collison曾斷言Go語言兩年內(nèi)將成為云計算的主流語言,這也許有些聳人聽聞,但Go語言在Google內(nèi)部確實取得了令人矚目的成績。Wired 最近發(fā)表文章講述了Go語言在Google內(nèi)部崛起的故事,IT經(jīng)理網(wǎng)編譯整理如下:
當一部分“老弱”程序代碼不能正常工作時,Google就會派出負責Go語言項目的“地鼠特工隊”負責除舊迎新。
Brad Fitzpatrick在使用Google軟件最常用的功能時卡住了——下載進度條在99%的地方停下了。雖然下載失敗是很常見的問題,但 Fitzpatrick卻并無遷就之意,他是地球上最懂技術的企業(yè)——Google的工程師,他不能容忍此類問題發(fā)生在Google身上。
“1k大的文件都托管不好對Google來說是很丟人的事情,”Fitzpatrick在上周俄勒岡的開源大會上說道,“所以我在內(nèi)部的Google+站點上就此問題大吐其槽。”
其實Fitzpatrick并不孤單,多年來很多人都曾抱怨dl.google.com系統(tǒng)不夠穩(wěn)定,而該系統(tǒng)極其重要,處理幾乎所有Google的下載任務,包括Chrome瀏覽器安裝文件、Android源代碼,到體積小些的JavaScript庫。
問題的根源是該文件服務器系統(tǒng)的底層代碼的年齡已經(jīng)超過五年,可謂破敗不堪。
“如果代碼不能得到持續(xù)的關愛就會變成一堆屎,”Fitzpatrick說道。
最初的C++代碼缺乏規(guī)范的文檔,自動化測試也不達標,沒有人能搞明白它是如何工作的。人們只是不停地做一些增量改變,最后在負責維護的程序員眼 里,這些代碼變成了“一坨面條”。系統(tǒng)的不穩(wěn)定差不多要把服務器運營團隊逼瘋了,但是沒有人有時間重寫技術上還能使用的代碼。于是Fitzpatrick 自告奮勇接手這個任務,他來自Google的一個25位工程師組成的團隊——地鼠隊,負責開發(fā)一種定制化的編程語言——Go.
Fitzpatrick對重寫依然在生產(chǎn)環(huán)境使用的代碼感到非常興奮,因為他終于有機會能在真實的系統(tǒng)中測試Go了。