0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解GO語言的趨勢與使用情況

Linux愛好者 ? 來源:CSDN技術(shù)社區(qū) ? 作者:CSDNnews ? 2021-03-17 11:05 ? 次閱讀

【導(dǎo)讀】Go 語言簡單易學(xué)、性能優(yōu)良。JetBrains Blog 發(fā)布了Go 語言的調(diào)查報告,看看GO 語言當(dāng)前趨勢吧!

在當(dāng)今流行的編程語言中,Go 語言獨(dú)樹一幟,因為其簡單易學(xué)、性能強(qiáng)勁且原生支持并發(fā)的特點,深受開發(fā)者的青睞。Go 語言在技術(shù)網(wǎng)站 Stack Overflow 上的關(guān)注度也在逐年上升:

近日,JetBrains Blog 針對 Go 語言開發(fā)者的做了一項調(diào)查報告,從報告中我們發(fā)現(xiàn):

全世界有 110 萬專業(yè)開發(fā)者選擇 Go 作為其主要開發(fā)語言,其中中國占比最高;

Go 語言份額持續(xù)增長,已成為專業(yè)開發(fā)者的前 10 大主要語言之一;

Go 語言使用場景中,36% 是 Web 服務(wù),31% 是小型程序的開發(fā);

越來越多的金融行業(yè)在接觸 Go 語言,甚至有銀行使用 Go 構(gòu)建了整個系統(tǒng)。

為什么 Go 語言在中國這么火?

調(diào)查結(jié)果顯示,在全球范圍內(nèi)有 110 萬專業(yè)開發(fā)者選擇 Go 作為其主要開發(fā)語言。如果把以其他編程語言作為主要開發(fā)語言,同時也在使用 Go 的開發(fā)者計算在內(nèi),這一數(shù)字將高達(dá) 270 萬。

就分布情況而言, 來自亞洲的 Go 語言開發(fā)者數(shù)量最多,大約有 57 萬。

下圖顯示了使用 Go 作為主要語言的開發(fā)者所在國家的分布情況,中國的 Go 語言開發(fā)者占比最高,占比 16%。

中國之所以排在首位,或是因為中國開發(fā)者總數(shù)非常多。像 PingCAP、騰訊和華為都有數(shù)萬開發(fā)者,Go 語言能夠支持并構(gòu)建與微服務(wù)結(jié)合的內(nèi)部工具、架構(gòu)和后端服務(wù),這一點很關(guān)鍵。而俄羅斯的 Go 語言社區(qū)也相當(dāng)出色,Go 在那里深受歡迎是一件很自然的事。

Go 進(jìn)入編程語言排名前十,占比 7%

自 2009 年推出以來,Go 語言一直在持續(xù)增長。根據(jù)調(diào)查,Go 語言已經(jīng)成為 2020 年專業(yè)開發(fā)者的前 10 大主要語言之一,占據(jù)來 7% 的份額。

在 JetBrains 《2020 開發(fā)者生態(tài)系統(tǒng)現(xiàn)狀》報告中顯示,有 16% 的 JavaScript 開發(fā)者計劃遷移并轉(zhuǎn)而采用 Go 語言。反觀在 Go 開發(fā)群體中,沒有采用/遷移其他編程語言的用戶高達(dá) 59%,穩(wěn)定性最強(qiáng)。

與 PHP 相比,Go 的優(yōu)勢在于類型安全,因為 Go 是靜態(tài)類型的語言,而 PHP 是動態(tài)的。這意味著由編譯器將完成大部分工作,確保編寫的代碼將在運(yùn)行時能夠正常地編譯和運(yùn)行。與 C++ 相比,Go 的優(yōu)勢在于簡單。Go 語言中,一切都很直觀。

Go 還有一個特點,就是在編寫代碼和運(yùn)行時都具有很高的內(nèi)置速度,Go 語言可以沒有任何特殊優(yōu)化的情況下獲得 5-10 倍于平均編程語言的性能提升,這對企業(yè)而言是很關(guān)鍵的生產(chǎn)力優(yōu)勢。同時它簡單,易于上手,并且很容易替換現(xiàn)有項目中的微服務(wù)。

許多 IT 架構(gòu)工具由 Go 構(gòu)建而成,例如大型的 Kubernetes、Docker 和 Vault 等。盡管有許多公司在使用 Java,但這些公司也大都會有一個團(tuán)隊運(yùn)行 Go 語言環(huán)境,特別是針對項目的修補(bǔ)和維護(hù)。

這或許也是 Go 語言在逐步被更多的人所接受的一個原因,在公共基礎(chǔ)架構(gòu)和部署中使用得越多,Go 的使用增長就越快。

因此,未來幾年還會有越來越多的人開始使用 Go,其比例可能會達(dá)到總數(shù)的 15-20%。在調(diào)查中的“您計劃在今后一年內(nèi)采用或遷移到其他語言嗎?如果有,是哪些語言?”這個問題里,有 13% 的受訪者回答了 Go。

Go 語言最受歡迎的領(lǐng)域是 Web 服務(wù)

調(diào)查結(jié)果顯示,Web 服務(wù)在 Go 語言開發(fā)中的占比達(dá)到了 36%。對于 Web 服務(wù),首要任務(wù)是創(chuàng)建快速的 API 服務(wù)器,它們不一定需要框架,而使用 Go 語言可以快速啟動和運(yùn)行。

在常用 Go 語言的應(yīng)用領(lǐng)域中,針對第二大應(yīng)用場景 Utilities(小程序)的開發(fā)上,Go 語言有不小的優(yōu)勢,它能輕松實現(xiàn)處理大量數(shù)據(jù)的快速應(yīng)用、小型實用程序應(yīng)用或需要大量功能的一次性任務(wù)。

其次,26% 的開發(fā)者表示經(jīng)常在 IT 架構(gòu)中使用 Go。采用 Docker 和 K8s 的人越多,使用 Go 的人就越多,因為它們都是用 Go 編寫的。任何類型的 DevOps 工作都可以從 Go 中受益,因為 Go 提供了類型安全和更快的速度。

使用 Go 語言與云服務(wù)的進(jìn)行結(jié)合也非常容易——Google、 Amazon 以及 Azure 等都有很好的 SDK。當(dāng)未來泛型到來之后,“Libraries / Frameworks” 類的份額還會有一定提升。

Go 語言主要被用在 IT 和金融行業(yè)

根據(jù)調(diào)查,使用 Go 語言的開發(fā)者主要從事 IT 服務(wù)和金融科技,其次是云計算平臺和其它行業(yè)。

IT 服務(wù)排第一理所應(yīng)當(dāng),而越來越多的金融行業(yè)也在接觸 Go 語言?,F(xiàn)在已經(jīng)有相當(dāng)數(shù)量的銀行已經(jīng)采用或正在使用 Go 語言開發(fā)的基礎(chǔ)架構(gòu),英國的 Monzo 銀行使用 Go 構(gòu)建了整個系統(tǒng)。云計算平臺排第三也很合理,因為它們很多應(yīng)用程序都是以 Go 編寫的。

移動開發(fā)排第五是在人意料之外的,要知道 Go 并沒有良好的移動開發(fā)的歷史。還有幾個行業(yè)的 Go 語言使用率預(yù)見在短期內(nèi)不會出現(xiàn)增長,例如基于機(jī)器學(xué)習(xí)的領(lǐng)域,那是 Python 的強(qiáng)項。Go 語言的機(jī)器學(xué)習(xí)也在朝著更普及、更優(yōu)良的方向前進(jìn),但至少還要再過幾年才能真正看到成果。

Go 語言工具的使用情況

Go 語言開發(fā)者最喜愛的軟件包管理器是 Go Modules,調(diào)查顯示,其采用率從 2019 年的 41% 上升至 2020 的 82%。在某種程度上,這已經(jīng)沒有疑問了,因為 Go Modules 已經(jīng)被設(shè)置為標(biāo)準(zhǔn)默認(rèn)模型,并且 Go 團(tuán)隊也想棄用 GOPATH,甚至其它的都可能會被淘汰。

自 2018 年以來,Gorilla / Mux 和標(biāo)準(zhǔn)庫始終是最常用的 Go 路由器。標(biāo)準(zhǔn)庫之所以如此受歡迎,可能是因為無論在 Reddit、Slack 還是其他地方,人們通常都會建議堅持使用標(biāo)準(zhǔn)庫,不到萬不得已不會換用其他東西。

Gorilla / Mux 因為在標(biāo)準(zhǔn)庫的基礎(chǔ)上更加抽象,且性能不會受太多影響,它使編寫服務(wù)器更容易,也是最接近標(biāo)準(zhǔn)庫的一個。

根據(jù)調(diào)查,自 2018 年以來,Gin 的使用量幾乎翻了一番,而其他 Web 框架基本保持穩(wěn)定。Gin 在 Web 上如此受歡迎,可能因為它是一個快速框架,得到了很好的推薦,同時也是最古老的框架之一,所以有很多現(xiàn)成的文檔,很多用戶都在使用和推薦它。

使用內(nèi)置測試的開發(fā)者比例從 2018 年的 64% 下降到 2020 年的 44%,而其他測試框架的使用量略有增長。內(nèi)置測試占比很高,是因為 Go 標(biāo)準(zhǔn)庫有一個非常好的開箱即用的測試庫,它的下降可能是因為越來越多的人轉(zhuǎn)移自其他語言,比如 PHP,他們更傾向于重復(fù)他們已有的測試習(xí)慣。

小結(jié)

使用 Go 語言的開發(fā)者數(shù)量相比 C++ 和 Java 等傳統(tǒng)語言少,有 38% 的開發(fā)者了解 Java,19.3% 的開發(fā)者了解 C++,僅有 4.6% 的開發(fā)者知道 Go。

但 Go 語言的使用者多年來始終在持續(xù)增長,Stack Overflow 2020 調(diào)查顯示,開發(fā)者最希望學(xué)習(xí)的編程語言里 Go 語言位列前三。Hacker Rank 的調(diào)查顯示,Go 連續(xù) 3 年榮登開發(fā)人員最想要學(xué)習(xí)的語言第一名。

于此同時,Go 語言開發(fā)者的薪資也水漲船高。據(jù)職友集統(tǒng)計,中國 Go 語言開發(fā)工程師的平均月工資為 21.8k 。從全球范圍來看,Go 語言的開發(fā)者的薪酬也是位列前茅,結(jié)合其并不高的聲量和使用率,可以說是「悶聲賺大錢」了。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • IT
    IT
    +關(guān)注

    關(guān)注

    2

    文章

    865

    瀏覽量

    63523
  • go語言
    +關(guān)注

    關(guān)注

    1

    文章

    158

    瀏覽量

    9050

原文標(biāo)題:揭曉 Go 語言真實現(xiàn)狀!

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    在學(xué)習(xí)go語言的過程踩過的坑

    作為一個5年的phper,這兩年公司和個人都在順應(yīng)技術(shù)趨勢,新項目慢慢從php轉(zhuǎn)向了go語言,從2021年到現(xiàn)在,筆者手上也先后開發(fā)了兩個go項目。在學(xué)習(xí)
    的頭像 發(fā)表于 11-11 09:22 ?164次閱讀

    LMX2592正常使用情況下溫度大概有多少?

    你好,LMX2592如果將 OUTA_PD = 1;OUTB_PD = 1;為什么芯片還是很燙,正常使用情況下溫度大概有多少,對于溫度的變化可以提供一下參考嗎
    發(fā)表于 11-08 08:32

    go語言如何解決并發(fā)問題

    作為一個后端開發(fā),日常工作中接觸最多的兩門語言就是PHP和GO了。無可否認(rèn),PHP確實是最好的語言(手動狗頭哈哈),寫起來真的很舒爽,沒有任何心智負(fù)擔(dān),字符串和整型壓根就不用區(qū)分,開發(fā)速度真的是比
    的頭像 發(fā)表于 10-23 13:38 ?139次閱讀
    <b class='flag-5'>go</b><b class='flag-5'>語言</b>如何解決并發(fā)問題

    TMS320C64x在高性能DSP應(yīng)用中的高速緩存使用情況

    電子發(fā)燒友網(wǎng)站提供《TMS320C64x在高性能DSP應(yīng)用中的高速緩存使用情況.pdf》資料免費(fèi)下載
    發(fā)表于 10-21 09:43 ?0次下載
    TMS320C64x在高性能DSP應(yīng)用中的高速緩存<b class='flag-5'>使用情況</b>

    三十分鐘入門基礎(chǔ)Go Java小子版

    前言 Go語言定義 Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)、強(qiáng)類型、編譯型語言
    的頭像 發(fā)表于 08-12 14:32 ?739次閱讀
    三十分鐘入門基礎(chǔ)<b class='flag-5'>Go</b> Java小子版

    Banana Pi BPI-M7 RK3588開發(fā)板在 Linux 上檢查 Rockchip NPU 使用情況

    如下介紹如何監(jiān)控 Rockchip 設(shè)備的 NPU 使用情況。 如今,新型設(shè)備開始配備內(nèi)置 AI 芯片?!癆I 芯片”的正確技術(shù)術(shù)語是 NPU,即神經(jīng)處理單元。 如果您有板載 NPU
    的頭像 發(fā)表于 07-11 16:47 ?408次閱讀
    Banana Pi BPI-M7 RK3588開發(fā)板在 Linux 上檢查 Rockchip NPU <b class='flag-5'>使用情況</b>

    如何查看TC397內(nèi)存的使用情況?

    Hi,請問,如何查看 TC397 內(nèi)存的使用情況?謝謝!
    發(fā)表于 05-22 07:50

    可以從下面的圖看出我的工程flash和ram的使用情況嗎?

    芯片是:dspf28335;可以從下面的圖看出我的工程flash和ram的使用情況嗎?感覺flash還可以,ram有點不夠用了,請求大師指點,如何分析?
    發(fā)表于 05-11 10:11

    Go語言中的函數(shù)、方法與接口詳解

    Go 沒有類,不過可以為結(jié)構(gòu)體類型定義方法。方法就是一類帶特殊的接收者參數(shù)的函數(shù)。方法接收者在它自己的參數(shù)列表內(nèi),位于 func 關(guān)鍵字和方法名之間。(非結(jié)構(gòu)體類型也可以定義方法)
    的頭像 發(fā)表于 04-23 16:21 ?835次閱讀

    CUBEIDE運(yùn)行完可以看RAM的使用情況,運(yùn)行中可以實時查看RAM的使用情況嗎?

    CUBEIDE運(yùn)行完可以看RAM的使用情況,運(yùn)行中可以實時查看RAM的使用情況嗎?以及負(fù)載情況? 圖片是運(yùn)行完可以看RAM使用情況,是否可以運(yùn)行中實時查看?是不是cubemonito
    發(fā)表于 03-12 07:56

    rtthread編譯后如何查看堆棧空間使用情況?

    rtthread編譯后如何查看堆棧空間使用情況,現(xiàn)在只能在編譯完成后看到總大小,有沒有辦法能看到詳細(xì)的使用情況。 由于RAM只有128K,除去內(nèi)存池32k,想看看剩余的RAM在哪用了
    發(fā)表于 03-05 07:58

    如何知道嵌入式電子控制單元 (ECU) 中的RAM使用情況?

    我知道嵌入式軟件構(gòu)建工具會報告程序閃存使用情況。我認(rèn)為他們也報告 RAM 使用率,但他們是否報告最大 RAM 使用率? 生成工具可能不知道在運(yùn)行時將使用多少堆。是否有構(gòu)建工具不知道的其他 RAM 使用情況? 如何準(zhǔn)確找出運(yùn)行時使用了多少RAM?
    發(fā)表于 01-22 07:02

    有什么辦法可以獲取TC397中的實時內(nèi)存使用情況嗎?

    有什么辦法可以獲取 TC397 中的實時內(nèi)存使用情況嗎? 例如,我能否通過計算當(dāng)前堆棧指針值和基本堆棧指針值之間的差異來獲得使用的內(nèi)存大?。?/div>
    發(fā)表于 01-22 06:18

    請問TC397如何查看RAM和pFlash的使用情況?

    請問 TC397 如何查看 RAM 和 pFlash 的使用情況?
    發(fā)表于 01-19 06:37

    正常使用情況下LTC3331的ship引腳接高電平還是低電平?

    正常使用情況下,LTC3331的ship引腳接高電平還是低電平?
    發(fā)表于 01-05 11:07