Go開(kāi)發(fā)大全 5天前
【導(dǎo)讀】Go 語(yǔ)言簡(jiǎn)單易學(xué)、性能優(yōu)良,。JetBrains Blog 發(fā)布了Go 語(yǔ)言的調(diào)查報(bào)告,,看看GO 語(yǔ)言當(dāng)前趨勢(shì)吧! 在當(dāng)今流行的編程語(yǔ)言中,Go 語(yǔ)言獨(dú)樹(shù)一幟,,因?yàn)槠浜?jiǎn)單易學(xué)、性能強(qiáng)勁且原生支持并發(fā)的特點(diǎn),,深受開(kāi)發(fā)者的青睞。Go 語(yǔ)言在技術(shù)網(wǎng)站 Stack Overflow 上的關(guān)注度也在逐年上升: 近日,,JetBrains Blog 針對(duì) Go 語(yǔ)言開(kāi)發(fā)者的做了一項(xiàng)調(diào)查報(bào)告,,從報(bào)告中我們發(fā)現(xiàn):
為什么 Go 語(yǔ)言在中國(guó)這么火? 調(diào)查結(jié)果顯示,,在全球范圍內(nèi)有 110 萬(wàn)專(zhuān)業(yè)開(kāi)發(fā)者選擇 Go 作為其主要開(kāi)發(fā)語(yǔ)言。如果把以其他編程語(yǔ)言作為主要開(kāi)發(fā)語(yǔ)言,,同時(shí)也在使用 Go 的開(kāi)發(fā)者計(jì)算在內(nèi),,這一數(shù)字將高達(dá) 270 萬(wàn),。 就分布情況而言, 來(lái)自亞洲的 Go 語(yǔ)言開(kāi)發(fā)者數(shù)量最多,,大約有 57 萬(wàn)。 下圖顯示了使用 Go 作為主要語(yǔ)言的開(kāi)發(fā)者所在國(guó)家的分布情況,,中國(guó)的 Go 語(yǔ)言開(kāi)發(fā)者占比最高,占比 16%,。 中國(guó)之所以排在首位,,或是因?yàn)橹袊?guó)開(kāi)發(fā)者總數(shù)非常多。像 PingCAP,、騰訊和華為都有數(shù)萬(wàn)開(kāi)發(fā)者,Go 語(yǔ)言能夠支持并構(gòu)建與微服務(wù)結(jié)合的內(nèi)部工具,、架構(gòu)和后端服務(wù),,這一點(diǎn)很關(guān)鍵,。而俄羅斯的 Go 語(yǔ)言社區(qū)也相當(dāng)出色,Go 在那里深受歡迎是一件很自然的事,。 Go 進(jìn)入編程語(yǔ)言排名前十,,占比 7% 自 2009 年推出以來(lái),,Go 語(yǔ)言一直在持續(xù)增長(zhǎng)。根據(jù)調(diào)查,,Go 語(yǔ)言已經(jīng)成為 2020 年專(zhuān)業(yè)開(kāi)發(fā)者的前 10 大主要語(yǔ)言之一,占據(jù)來(lái) 7% 的份額,。 在 JetBrains 《2020 開(kāi)發(fā)者生態(tài)系統(tǒng)現(xiàn)狀》報(bào)告中顯示,有 16% 的 JavaScript 開(kāi)發(fā)者計(jì)劃遷移并轉(zhuǎn)而采用 Go 語(yǔ)言。反觀在 Go 開(kāi)發(fā)群體中,,沒(méi)有采用/遷移其他編程語(yǔ)言的用戶高達(dá) 59%,,穩(wěn)定性最強(qiáng),。 與 PHP 相比,Go 的優(yōu)勢(shì)在于類(lèi)型安全,,因?yàn)?Go 是靜態(tài)類(lèi)型的語(yǔ)言,而 PHP 是動(dòng)態(tài)的,。這意味著由編譯器將完成大部分工作,,確保編寫(xiě)的代碼將在運(yùn)行時(shí)能夠正常地編譯和運(yùn)行,。與 C++ 相比,Go 的優(yōu)勢(shì)在于簡(jiǎn)單,。Go 語(yǔ)言中,一切都很直觀,。 Go 還有一個(gè)特點(diǎn),,就是在編寫(xiě)代碼和運(yùn)行時(shí)都具有很高的內(nèi)置速度,,Go 語(yǔ)言可以沒(méi)有任何特殊優(yōu)化的情況下獲得 5-10 倍于平均編程語(yǔ)言的性能提升,,這對(duì)企業(yè)而言是很關(guān)鍵的生產(chǎn)力優(yōu)勢(shì)。同時(shí)它簡(jiǎn)單,,易于上手,,并且很容易替換現(xiàn)有項(xiàng)目中的微服務(wù)。 許多 IT 架構(gòu)工具由 Go 構(gòu)建而成,,例如大型的 Kubernetes,、Docker 和 Vault 等。盡管有許多公司在使用 Java,,但這些公司也大都會(huì)有一個(gè)團(tuán)隊(duì)運(yùn)行 Go 語(yǔ)言環(huán)境,,特別是針對(duì)項(xiàng)目的修補(bǔ)和維護(hù)。 這或許也是 Go 語(yǔ)言在逐步被更多的人所接受的一個(gè)原因,,在公共基礎(chǔ)架構(gòu)和部署中使用得越多,,Go 的使用增長(zhǎng)就越快。 因此,,未來(lái)幾年還會(huì)有越來(lái)越多的人開(kāi)始使用 Go,,其比例可能會(huì)達(dá)到總數(shù)的 15-20%。在調(diào)查中的“您計(jì)劃在今后一年內(nèi)采用或遷移到其他語(yǔ)言嗎?如果有,,是哪些語(yǔ)言,?”這個(gè)問(wèn)題里,有 13% 的受訪者回答了 Go,。 Go 語(yǔ)言最受歡迎的領(lǐng)域是 Web 服務(wù) 調(diào)查結(jié)果顯示,,Web 服務(wù)在 Go 語(yǔ)言開(kāi)發(fā)中的占比達(dá)到了 36%。對(duì)于 Web 服務(wù),,首要任務(wù)是創(chuàng)建快速的 API 服務(wù)器,,它們不一定需要框架,而使用 Go 語(yǔ)言可以快速啟動(dòng)和運(yùn)行,。 在常用 Go 語(yǔ)言的應(yīng)用領(lǐng)域中,,針對(duì)第二大應(yīng)用場(chǎng)景 Utilities(小程序)的開(kāi)發(fā)上,Go 語(yǔ)言有不小的優(yōu)勢(shì),,它能輕松實(shí)現(xiàn)處理大量數(shù)據(jù)的快速應(yīng)用,、小型實(shí)用程序應(yīng)用或需要大量功能的一次性任務(wù)。 其次,,26% 的開(kāi)發(fā)者表示經(jīng)常在 IT 架構(gòu)中使用 Go,。采用 Docker 和 K8s 的人越多,使用 Go 的人就越多,,因?yàn)樗鼈兌际怯?Go 編寫(xiě)的,。任何類(lèi)型的 DevOps 工作都可以從 Go 中受益,因?yàn)?Go 提供了類(lèi)型安全和更快的速度,。 使用 Go 語(yǔ)言與云服務(wù)的進(jìn)行結(jié)合也非常容易——Google,、 Amazon 以及 Azure 等都有很好的 SDK。當(dāng)未來(lái)泛型到來(lái)之后,,“Libraries / Frameworks” 類(lèi)的份額還會(huì)有一定提升,。 Go 語(yǔ)言主要被用在 IT 和金融行業(yè) 根據(jù)調(diào)查,使用 Go 語(yǔ)言的開(kāi)發(fā)者主要從事 IT 服務(wù)和金融科技,,其次是云計(jì)算平臺(tái)和其它行業(yè),。 IT 服務(wù)排第一理所應(yīng)當(dāng),而越來(lái)越多的金融行業(yè)也在接觸 Go 語(yǔ)言?,F(xiàn)在已經(jīng)有相當(dāng)數(shù)量的銀行已經(jīng)采用或正在使用 Go 語(yǔ)言開(kāi)發(fā)的基礎(chǔ)架構(gòu),,英國(guó)的 Monzo 銀行使用 Go 構(gòu)建了整個(gè)系統(tǒng),。云計(jì)算平臺(tái)排第三也很合理,,因?yàn)樗鼈兒芏鄳?yīng)用程序都是以 Go 編寫(xiě)的。 移動(dòng)開(kāi)發(fā)排第五是在人意料之外的,,要知道 Go 并沒(méi)有良好的移動(dòng)開(kāi)發(fā)的歷史,。還有幾個(gè)行業(yè)的 Go 語(yǔ)言使用率預(yù)見(jiàn)在短期內(nèi)不會(huì)出現(xiàn)增長(zhǎng),例如基于機(jī)器學(xué)習(xí)的領(lǐng)域,那是 Python 的強(qiáng)項(xiàng),。Go 語(yǔ)言的機(jī)器學(xué)習(xí)也在朝著更普及,、更優(yōu)良的方向前進(jìn),但至少還要再過(guò)幾年才能真正看到成果,。 Go 語(yǔ)言工具的使用情況 Go 語(yǔ)言開(kāi)發(fā)者最喜愛(ài)的軟件包管理器是 Go Modules,,調(diào)查顯示,其采用率從 2019 年的 41% 上升至 2020 的 82%,。在某種程度上,,這已經(jīng)沒(méi)有疑問(wèn)了,因?yàn)?Go Modules 已經(jīng)被設(shè)置為標(biāo)準(zhǔn)默認(rèn)模型,,并且 Go 團(tuán)隊(duì)也想棄用 GOPATH,,甚至其它的都可能會(huì)被淘汰。 自 2018 年以來(lái),,Gorilla / Mux 和標(biāo)準(zhǔn)庫(kù)始終是最常用的 Go 路由器,。標(biāo)準(zhǔn)庫(kù)之所以如此受歡迎,可能是因?yàn)闊o(wú)論在 Reddit,、Slack 還是其他地方,,人們通常都會(huì)建議堅(jiān)持使用標(biāo)準(zhǔn)庫(kù),不到萬(wàn)不得已不會(huì)換用其他東西,。 Gorilla / Mux 因?yàn)樵跇?biāo)準(zhǔn)庫(kù)的基礎(chǔ)上更加抽象,,且性能不會(huì)受太多影響,它使編寫(xiě)服務(wù)器更容易,,也是最接近標(biāo)準(zhǔn)庫(kù)的一個(gè),。 根據(jù)調(diào)查,自 2018 年以來(lái),,Gin 的使用量幾乎翻了一番,,而其他 Web 框架基本保持穩(wěn)定。Gin 在 Web 上如此受歡迎,,可能因?yàn)樗且粋€(gè)快速框架,,得到了很好的推薦,同時(shí)也是最古老的框架之一,,所以有很多現(xiàn)成的文檔,,很多用戶都在使用和推薦它。 使用內(nèi)置測(cè)試的開(kāi)發(fā)者比例從 2018 年的 64% 下降到 2020 年的 44%,,而其他測(cè)試框架的使用量略有增長(zhǎng),。內(nèi)置測(cè)試占比很高,是因?yàn)?Go 標(biāo)準(zhǔn)庫(kù)有一個(gè)非常好的開(kāi)箱即用的測(cè)試庫(kù),,它的下降可能是因?yàn)樵絹?lái)越多的人轉(zhuǎn)移自其他語(yǔ)言,,比如 PHP,,他們更傾向于重復(fù)他們已有的測(cè)試習(xí)慣。 小結(jié) 使用 Go 語(yǔ)言的開(kāi)發(fā)者數(shù)量相比 C++ 和 Java 等傳統(tǒng)語(yǔ)言少,,有 38% 的開(kāi)發(fā)者了解 Java,,19.3% 的開(kāi)發(fā)者了解 C++,僅有 4.6% 的開(kāi)發(fā)者知道 Go,。 但 Go 語(yǔ)言的使用者多年來(lái)始終在持續(xù)增長(zhǎng),,Stack Overflow 2020 調(diào)查顯示,開(kāi)發(fā)者最希望學(xué)習(xí)的編程語(yǔ)言里 Go 語(yǔ)言位列前三,。Hacker Rank 的調(diào)查顯示,,Go 連續(xù) 3 年榮登開(kāi)發(fā)人員最想要學(xué)習(xí)的語(yǔ)言第一名。 于此同時(shí),,Go 語(yǔ)言開(kāi)發(fā)者的薪資也水漲船高,。據(jù)職友集統(tǒng)計(jì),中國(guó) Go 語(yǔ)言開(kāi)發(fā)工程師的平均月工資為 21.8k ,。從全球范圍來(lái)看,,Go 語(yǔ)言的開(kāi)發(fā)者的薪酬也是位列前茅,結(jié)合其并不高的聲量和使用率,,可以說(shuō)是「悶聲賺大錢(qián)」了,。 - EOF - |
|
來(lái)自: 風(fēng)聲之家 > 《GO》