Go語言將登上下一個十年的寶座
標題相當夸張是不是?
我本來打算用“rule”這個詞的,但真的認為“王冠寶座”的描述更加準確。
只有一點就是,如題的觀點是事實。
每一天我都跟許多人談?wù)摰?Go語言。除了像 Google 或者 Github 這樣的地方之外,在 Go語言 用戶上我們可能已經(jīng)有了世界上最大的數(shù)據(jù)集。我們也從各種渠道收集到很多有趣的生產(chǎn)環(huán)境運行時數(shù)據(jù)。外部數(shù)據(jù)中的一些主動策劃從公共資源處獲取到的,而其 他部分則是自動從招募網(wǎng)站、github 資源庫、公司博客、linkedin 還有其它資源那里收集到的。這將我們引向一個有趣的問題:
這些 Go語言(地鼠gopher)們到底是從哪個洞里面鉆出來的?
軟件開發(fā)工具
幾乎所有這幾年出現(xiàn)的 軟件開發(fā) 工具都已經(jīng)被用 Go語言 語言改寫了。我覺得這恐怕預示著什么。通常,相對于一般的開發(fā)小組,小公司的運維小組收到的監(jiān)管很少。只要是能工作的工具,他們一般就會去用,而不需要獲 得誰的批準。對他們來說 Go語言 語言工作的非常棒,這是一門靜態(tài)類型和編譯型的語言(無需安裝需要上千個依賴的運行庫),而且 Go語言 的運行庫也不大,也不用動不動就需要 100-300M的磁盤空間(看看 ruby、jvm 吧)。
比特幣
許多 DeferPanic 上的我們的用戶都與比特幣/虛擬貨幣有關(guān)。這并非巧合,整個生態(tài)系統(tǒng)的共同點是使用Go語言。最有意思的是,我們所服務(wù)的那些公司,并不像你們以為的那樣 會運行某些應(yīng)用?;旧暇褪腔谖募到y(tǒng)的,或者是校驗由2008年建立的一堆雜亂的服務(wù)生成的交易。例如:極少數(shù)嘗試把套利交易變成兌換。
不管你聽到過什么,比特幣都還沒有死掉。很多用例傳統(tǒng)上沒想到過的,但是實際上已經(jīng)有了很大的成功。我們的這些用戶需要有高性能和更好的數(shù)據(jù)安全性的保證,Go語言在這方面顯然是很好的選擇。
容器技術(shù)
有趣的是和那些科技人士交談后發(fā)現(xiàn)他們居然不知道今天所有容器技術(shù)都是 Go語言 寫的,不是 99%,也不是 95%-100%。
所有今天在使用的容器軟件都是 Go語言 寫的。
市場營銷人員應(yīng)該開始用 Go語言 原生來替換云原生。
我們可以強調(diào)這是有多大(的市場)?即使你不相信容器的炒作,認為這是一個龐式騙局。當你考慮到所有公司使用 Go語言 的人數(shù),并且未來幾年大公司使用 Go語言 人數(shù)巨大。問你從世界財富五百強的首席信息官那聽說他們將要檢修他們系統(tǒng),你不得不意識到這訂單很大。這不是他們看輕這件事,相反,他們也不會輕易的從中 走開,因為這是一個巨大的對時間,金錢以及過程的投資。
微服務(wù)
微服務(wù)在過去的幾年風靡一時,不少分析師忽略了它們的價值,因為他們并不是搞技術(shù)的。當你用maven下載了半個互聯(lián)網(wǎng),同時啟動要占用 800M 虛擬內(nèi)存,或者當你運行一個 RoR 的應(yīng)用的時候占用了 200M,這和 Go語言 平均 5-20M 的運行時想比真是相差巨大。這種差距可以立刻轉(zhuǎn)換到賬單上,當你公司每個月少給 25-30 美金在 AWS 上就顯而易見了。隨著這種激烈的趨勢下去,我們會看到越來越多的公司因為上述理由采用這種模式,并且你可以打賭即將迎來 Go語言 的時代。
商業(yè)應(yīng)用
當談及到一些知道 Docker 的人很有趣,他們甚至會去投資它在他們并不知道這個是由一個他們從未聽過的 Go語言 編寫而成的之前。在某種情況下,我想大概可以認作為“細節(jié)摘要”,當你把所有內(nèi)容都說出來是很瘋狂的。當然,事情也并非總是如此。
從來自 Battery 的 Adrian (也是來自 Netflix)今年在他與公司的交流中曾經(jīng)數(shù)次說到 Go語言:
“大概四分之三的新東西是用 Go語言 寫的 @golang” – 十二月十四號
L 接著他又提到 “幾乎所有新的、有趣的東西都是用 Go語言 寫的”.
在他的行業(yè)里面他可能有更好的眼光,因為他參加過很多會議,并如此的接地氣。
來自 Mayfield 的 Robin Vasan 甚至在今年的 goper 大會上進行了一次演講
在 VC 工作,并且精通 Go語言 的 Jerry Chen 曾經(jīng)出席大會并有良好表現(xiàn)。
采用
早年,C++ 曾一度被嘲諷為是無能的 C 編程人員才使用的語言。后來,Java 出現(xiàn)了,但也沒有多大的改善。Joel早就對此很失望。 究其原因是,在上世紀 90 年代后期所推行的一堆面向?qū)ο蟮母拍?,完全是在胡說八道,并且對未來有害無益(雖然當時難以預見)。摩爾定律失效了?,F(xiàn)在,大家都用虛擬計算機做軟件開發(fā) 和交付,這是一種完全不同于上世紀 90 年代的做法。不過,誰會想得到呢。事后諸葛亮還是好當?shù)摹?/p>
舊金山的工程師們對此或許會感到有些驚訝。在舊金山,有一大群的開發(fā)人員每天想著朝九晚五的上下班,回到家后就不再碰觸電腦。他們可能是形形色色 的,但我想他們都有一個共同的特點,那就是他們“編碼只是為了完成任務(wù)”。他們絲毫不關(guān)心熱門的新框架,也不在乎是否使用最新的“最佳實踐”。他們唯一的 心愿就是“完成任務(wù)”。
Go語言 在這方面很出色(去掌握這門技術(shù)吧)。它真真正正的讓開發(fā)人員做到了恰好搞定工作。
眾觀世上所有程序設(shè)計語言,沒有其它任何一門語言能夠在“完成任務(wù)”模式上有優(yōu)勢。然而,對于軟件的未來,這一點卻非常重要。因為,每一家公司都不得不招收越來越多的開發(fā)人員,開發(fā)越來越復雜的系統(tǒng)。
Go是新的JVM
Go替代JVM和.NET成為企業(yè)級編程語言是很顯而易見的。
例如,我在舊金山演講的時候幾乎所有的Scala企業(yè)都在一點一點的遷移到Go,許多歐洲的企業(yè)也在做著同樣的事情。
另一個我聽到比較多的比較和是Node。我發(fā)現(xiàn)人們嘗試用Node去比較Go的時候都有點奇怪。首先你是比較語言的框架,其次你用 Javascript(差不多和Java的發(fā)布時間一樣)和Go進行比較。在人類的歲月里,Java和Javascipt都喝醉在酒吧的某個角落,Go當 時甚至還沒有從幼兒園里學會第一個字母,但現(xiàn)在Go依舊能得到這混亂市場的份額。
然而,真正愚蠢的人總是提及現(xiàn)在使用Go的人數(shù)-這基本上是偽科學的定義。我不認為談?wù)?900年路上車的數(shù)量是有意義的。
更精確且相關(guān)的應(yīng)該是討論Go在生態(tài)系統(tǒng)的方面(加密貨幣,容器)和增長速率,而不是原始的下載數(shù)。
因此,讓我們來看一些謊言。
讓我們來看一些該死的謊言。
讓我們來看一些統(tǒng)計數(shù)據(jù)。
人們只需要看看 Node 和 Go語言 聚會的出席率來做出自己的判斷,從字面上看是兩倍,完全沒有競爭能力。
似乎每個人都很享受推特風暴,那么這條怎么樣?我不知道應(yīng)該把 DropBox 歸屬在什么類別(除了大),但是我覺得這會給你一個得體的想法去支持 Go語言 在接下來的幾年里:
另外,你還認為只是谷歌和一些舊金山消息靈通的人在使用Go嘛?又是猜的。Go在中國很多人用,而且本地的百度也有一個大的用戶,他們正在開始使用Go。
顯然Go是一個有美好未來的新語言,Go無用武之地?
然而現(xiàn)實是這樣的:“在美國市值前20的企業(yè)有超過一半正在使用Go”
最后
如果你還沒有開始使用 Go語言 就說明你的公司已經(jīng)落后了。在 90 年代、00 年代落后可能并不是大不了的事情,我們?nèi)匀挥挟敃r的 “IT” 概念,但是現(xiàn)在可是快接近 2016 了。
你不能被拋在后面,不然你的業(yè)務(wù)就會死。
這不是一個原始的資源游戲,在成本的十分之一提交軟件。我們幾次都注意到這很高的影響工作效率。不管你信不信這會相當你有十倍的編程人員,Go語言 會讓你們小組的效率提升十倍以上。
所有招募來工作于基礎(chǔ)系統(tǒng)的,如果你不使用 Go語言,將使你公司的技術(shù)冒上風險。
Ruby 顯然已經(jīng)完了。Javascript 是誤導的、python 踩上了數(shù)據(jù)科學家的高蹺。JVM 西斯君主握住你的脖子,.NET最近開源企圖想留在開源相關(guān)面。
Go語言 在未來,Go語言 是你的未來,你還有得選擇。
Go語言 會統(tǒng)治接下來的十年!