為什么 Go 語(yǔ)言能在中國(guó)這么火?
最近在某乎上看到一個(gè)和大家學(xué)習(xí)、工作、生活息息相關(guān)的話題,那就是世界上的編程語(yǔ)言這么多...
為什么 Go 語(yǔ)言能在中國(guó)這么火,憑的是什么?
背景
Go 語(yǔ)言是什么
Go 語(yǔ)言,這門(mén)語(yǔ)言誕生于 2007 年,在 2009 年正式對(duì)外公布并開(kāi)源,當(dāng)時(shí) Rob Pike 在 Google Techtalk 上做了一次 Go 語(yǔ)言的分享,時(shí)間是 2009 年 10 月 30 日,分享內(nèi)容為 《The Go Programming Language》。

緊接著 Go 語(yǔ)言正式在 2009 年 11 月 10 日正式對(duì)外開(kāi)源,發(fā)布文章 《Hey! Ho! Let's Go!》。一開(kāi)始源代碼是托管在 Google 的 code.google.com 上,后續(xù)隔了 2 年左右正式遷移到 GitHub 上。
在國(guó)內(nèi)的趨勢(shì)
在國(guó)內(nèi),Go 語(yǔ)言從 2014 年開(kāi)始得到越來(lái)越多的關(guān)注,在 2018 年到達(dá)一個(gè)階段高峰,在剛剛過(guò)去的 2021 年 8~9 月到達(dá)了最新的最高峰。
如下圖:

每次一說(shuō)到 Go 的布道,就有人提到七牛云老許的大力推廣。甚至是之前 B 站泄露的源碼:

過(guò)去 5 年中,在全球的 Go 搜索熱度中。我國(guó)的遙遙領(lǐng)先:

可以說(shuō)是全球 Go 開(kāi)發(fā)者最多的地方了。
市場(chǎng)招聘分析
在社會(huì)招聘和崗位層面,狹義上來(lái)看,與 2018 年我寫(xiě)的 《帶你了解一下Golang的市場(chǎng)行情》基本情況仍保持一致:

以下引用 GoCN 所收集的 “2020 中國(guó)Go 開(kāi)發(fā)者調(diào)查報(bào)告” 的地域分布:

目前 Go 語(yǔ)言的大熱門(mén)地區(qū)依然是:北京、上海、深圳,主體集中在一線城市,機(jī)會(huì)這里最多。但二三線也在逐步發(fā)展了,這個(gè)主要看個(gè)人的就業(yè)選擇了。
看看數(shù)據(jù):TIOBE
從 TIOBE 的編程語(yǔ)言排行榜來(lái)看,整體上 Go 語(yǔ)言的熱門(mén)程度并不會(huì)特別高(與老牌語(yǔ)言相比),但作為一門(mén)編程語(yǔ)言在短短 11 年內(nèi)已有很不錯(cuò)的表現(xiàn):

業(yè)內(nèi)時(shí)常說(shuō) Go 語(yǔ)言要干掉 PHP、C++、Java 等,目前來(lái)看短期內(nèi)不現(xiàn)實(shí),官方也沒(méi)有這方面打算,因?yàn)楹线m的場(chǎng)景選擇合適的語(yǔ)言就好了。
為什么會(huì)火
易上手和有特色
Go 語(yǔ)言是一門(mén)非常易上手的編程語(yǔ)言,我常常會(huì)聽(tīng)到有人轉(zhuǎn)語(yǔ)言時(shí),只花了幾天,看了看語(yǔ)法,就馬上開(kāi)始開(kāi)發(fā)企業(yè)應(yīng)用了,也沒(méi)見(jiàn)什么不適。
另外 Go 相比其他同行,就不少可贊揚(yáng)或是批評(píng)的點(diǎn),也有許多有意思的特性。
常常會(huì)在互聯(lián)網(wǎng)上傳播,像是:
工具鏈:官方提供的工具鏈中包含了代碼格式化(go fmt、go vet)。 殺手級(jí)特性:語(yǔ)言約束上的 Go1 兼容性承諾,被譽(yù)為殺手級(jí)特性。 協(xié)程很快:開(kāi)協(xié)程(goroutine)跟下餃子一樣簡(jiǎn)單和快速,再配合 channel 使用,跨協(xié)程傳遞很方便。 文化價(jià)值觀:Go 核心開(kāi)發(fā)團(tuán)隊(duì)有與眾不同的文化,例如:少即是多(less is more)。 不同的道路:Go 自述是為軟件工程設(shè)計(jì)而生,與不少編程語(yǔ)言不一樣,走一條自己的道路。 被吐槽的點(diǎn):錯(cuò)誤處理、沒(méi)有泛型(1.18 以前)等。
大企業(yè)大城市帶頭
最早在國(guó)內(nèi)應(yīng)用和推廣的七牛云,同時(shí)字節(jié)、騰訊、滴滴、知乎等各大公司也逐漸在近幾年引入和輸出各大 Go 語(yǔ)言人才,大家都在不斷地跟進(jìn)。
另外在騰訊的《2021 年騰訊研發(fā)大數(shù)據(jù)報(bào)告》中也可以看到,,Go 語(yǔ)言快速增長(zhǎng),在鵝廠內(nèi)首次超越 C++,成為騰訊 2021 年最熱門(mén)的編程語(yǔ)言。
如下圖:

既然大中企業(yè)在用了,那么像是北京、上海、深圳、廣州、武漢等,Go 的招聘崗位也自然而然多了起來(lái),且據(jù)聞工資相比 PHP 更高。
社區(qū)和組件
2015年,Google,Redhat、Microsoft 等一些大型云廠商共同創(chuàng)立了 CNCF,云原生時(shí)代正式拉開(kāi)了新的序幕。
在 2017-2019 年左右,容器服務(wù)的商業(yè)化形態(tài)的爭(zhēng)奪、撮合已經(jīng)基本明確和明朗,K8S 成為事實(shí)上的容器編排之王。
如下圖:

Go 在這里承擔(dān)了什么角色?非常好,K8S 和 Docker 以及許多的云原生組件,都是 Go 開(kāi)發(fā)的。另外還有區(qū)塊鏈,也是有許多與 Go 相關(guān)。
作為應(yīng)用的基礎(chǔ),代碼也是開(kāi)源的,受到許多的人關(guān)注。自然而然,Go 也就得到了許許多多人的關(guān)注,也就水漲船高了。
(云原生和區(qū)塊鏈,其實(shí)也是 Go 作者沒(méi)有想到的,這里面的機(jī)遇是杠杠的。)
同時(shí)國(guó)內(nèi)看到機(jī)會(huì)后,許多社區(qū)資料、出版物(Go 圖書(shū)近 2 年數(shù)量暴增)、知識(shí)付費(fèi)、B 站源碼泄露等,也起到了許許多多的作用,進(jìn)一步降低了學(xué)習(xí)成本和門(mén)檻。
總結(jié)
在這篇文章中,我們面向 Go 的背景、趨勢(shì)、招聘、數(shù)據(jù)四個(gè)維度進(jìn)行了摸底,簡(jiǎn)單了解其發(fā)展歷程。
隨后在 Go 能火的原因中,我們抽離出了三大點(diǎn):易上手和有特色、社區(qū)和組件、大企業(yè)大城市帶頭來(lái)表示其會(huì)火的原因。
第一大點(diǎn)的易上手,也就是門(mén)檻低。代碼又簡(jiǎn)潔、性能又高,又有 GC,沒(méi)有太明顯的短板,是非常適合國(guó)內(nèi)的大流量場(chǎng)景的訴求的,這也是在國(guó)內(nèi)特別火的原因。
相信 Go 在國(guó)內(nèi)會(huì)越走越好!
參考
《為什么 Go 語(yǔ)言能在中國(guó)這么火?》
