Go語言2018年度調查結果報告

感謝

這篇文章總結了咱們2018用戶調查的結果,與以前的20162017年的調查結果作了對比。golang

2018年咱們調查了來自103個國家的 5,883 個調查受訪者。很是感謝提供反饋的每個人,這個調查能夠幫助塑造Go的將來。web

調查結果摘要

  • 首先,一半的調查受訪者使用Go語言做爲他們平常使用的一部分。這一年咱們看到了那些使用Go做爲他們工做一部分的受訪者們在數量上有了很是大的增加。
  • Go最經常使用作 API/RPC 服務和 CLI 工具。自動化任務雖然不像CLI工具和API服務那麼常見,但倒是Go的一個快速發展的領域。
  • Web開發仍然是最多見到的領域,而 DevOps 的年增加率最高,也是如今第二常見到的領域。
  • 絕大多數受訪者表示 Go 是他們最優先選擇的編程語言,儘管廣泛感受不如至少一種其餘語言。
  • VS CodeGoLand 也是人氣飆升,是調查受訪者中最受歡迎的代碼編輯器。
  • 突出Go的便攜性,許多Go開發人員使用多個主要操做系統進行開發。Linux和macOS尤爲受歡迎,大多數受訪者使用這些操做系統中的一個或兩個來編寫Go代碼。
  • 調查受訪者彷佛正在從本地Go部署轉移,並轉向容器和 serverless 雲部署。
  • 大多數受訪者表示他們在Go社區感到受歡迎,改善Go社區的大多數想法都專一於改善新人的體驗,就是讓新轉到Go的用戶能夠方便的使用Go。

編程背景

今年的調查結果顯示,做爲工做的一部分使用Go的受訪者數量顯着增長(68%→72%),自2016年首次調查以來,這一趨勢一直在持續增加。咱們還看到在工做以外在Go工做的受訪者數量增長(64%→70%)。做爲平常編程的一部分,在Go上編程的受訪者數量首次達到50%(2016年爲44%)。做爲平常生活的一部分,在Go上寫做的受訪者數量首次達到50%(2016年爲44%)。數據庫

file

file

爲了更好的瞭解開發者們都在哪使用Go,咱們將結果分爲三組來看:編程

  • 1) 在工做中和工做以外都使用Go的人
  • 2) 在工做中使用可是在工做以外不使用的人
  • 3) 只在工做以外寫Go的人

將近一半(46%)的受訪者在工做和本身的業餘時間內編寫Go代碼(自2017年以來增長了10個點),而其他的受訪者則只是在工做中寫Go,或者只是在工做以外寫Go。大部分受訪者在工做中使用Go並選擇在工做以外使用它代表該語言吸引那些不將軟件工程視爲平常工做的開發人員,他們也選擇在工做以外去hack一些代碼,(85%的受訪者表示他們更喜歡Go做爲他們的下一個項目)Go是他們更喜歡用於這些非工做相關項目的首選語言。服務器

file

當被問及他們使用Go有多長時間時,參與者的答案隨着時間的推移呈現出強烈的趨勢,每一年2-4和4年以上的響應中的回答率更高。這是一種較新的編程語言的預期,咱們很高興看到Go新手的受訪者比例降低的速度比使用Go 2年以上的受訪者比例增長的速度慢,由於這代表開發人員在最初學習語言後並無退出生態系統。架構

file

與往年同樣,Go是受訪者的首選語言而且在語言中排名第一。大多數受訪者(69%)聲稱擁有5種不一樣語言的專業知識,強調他們對Go的態度受到其餘編程棧體驗的影響。下面的圖表按照將每種語言排在最喜歡/理解的受訪者數量(最黑的藍色條形圖)排序,其中突出顯示了三個有趣的點:less

  • 雖然約有1/3的受訪者認爲Go是他們擁有最多專業知識的語言,可是不少受訪者認爲這是他們最喜歡的編程語言的兩倍。所以,即便許多受訪者認爲他們沒有像使用其餘語言那樣熟練使用Go,他們仍然常常喜歡使用Go進行開發。
  • 不多有調查受訪者將Rust列爲他們具備專業知識的語言(6.8%),但19%將其列爲首選語言,這代表Rust對這些受衆的興趣很高。
  • 只有三種語言的受訪者表示他們更喜歡這種語言:Rust(2.41:1),Kotlin(1.95:1)和Go(1.02:1)。比專業知識更高的偏好意味着興趣 - 但不多直接經驗 - 在語言中,而低於專業數字的偏好代表熟練使用的障礙。接近1.0的比率代表大多數開發人員可以使用給定的語言有效和愉快地工做。 Stack Overflow的2018開發人員證明了這些數據,該調查還發現 RustKotlinGo 是最受歡迎的編程語言之一。

file

file

閱讀數據:參與者能夠對他們的前5種語言進行排名。對於頂級排名,顏色編碼從深藍色開始,對於每一個連續排名,顏色編碼變亮。這些圖表按照將每種語言列爲首選的參與者的百分比進行排序。

開發領域

調查受訪者報告中位數爲三個不一樣的領域,絕大多數(72%)在2-5個不一樣領域工做。Web開發最爲廣泛,達到65%,而且隨着主要受調查地區的調查人數的增長而增長其主導地位(去年爲61%),自2016年以來,Web開發一直是Go開發的最多見領域。今年 DevOps 顯着增長,從36%到41%的受訪者,從系統編程中取得第二名。咱們沒有發現2018年的使用率低於2017年的任何領域,這代表受訪者正在採用Go進行更普遍的項目,而不是將使用從一個域轉移到另外一個域。機器學習

file

自2016年以來,Go的前兩個用途是編寫 API/RPC 服務和開發 CLI 應用程序。雖然 CLI 使用率在三年內保持穩定在63%,API/RPC 使用率從2016年的60%增長到2017年的65%,達到今天的73%。這些領域發揮了Go的核心優點,而且都是雲原生軟件開發的核心,所以咱們但願它們仍然是Go開發人員將來的兩個主要方案。編寫直接返回HTML的Web服務的受訪者的百分比在 API/RPC 使用量增長時穩步降低,代表有些遷移到了API服務的 API/RPC 模型。另外一個同比趨勢代表自動化也是Go的一個增加領域,38%的受訪者如今使用Go進行腳本和自動化任務(2016年爲31%)。編程語言

file

爲了更好地理解開發人員使用Go的背景,咱們在不一樣行業中添加了關於Go採用的問題。對於一種相對較新的語言而言,也許不足爲奇,超過一半的受訪者在 Internet/web 服務和軟件類公司(即科技公司)工做。其餘僅有3%回覆的行業是金融,銀行或保險以及媒體,廣告,出版或娛樂。(在下圖中,咱們將響應率低於3%的全部類別濃縮爲「其餘」類別。)咱們將繼續跟蹤Go在各行業中的採用狀況,以更好地瞭解技術公司之外的開發人員需求。編輯器

file

對Go的態度

今年咱們添加了一個問題,詢問 『你有多大可能推薦給朋友或同事?』來計算咱們的淨推薦分數。該分數試圖測量產品比「批評者」多多「促銷員」,範圍從-100到100;正值代表大多數人可能會推薦使用產品,而負值代表大多數人可能會建議不要使用它。咱們的2018年得分是61(68%的推進者 - 7%的批評者),並將做爲基線,幫助咱們衡量社區對Go生態系統的情緒。

file

除了NPS以外,咱們還詢問了幾個關於開發人員對Go的滿意度的問題。整體而言,受訪者表示滿意度很高,與前幾年一致。大多數人表示他們對Go感到滿意(89%),他們更願意將Go用於他們的下一個項目(85%),而且以爲它對他們的團隊運做良好(66%),而多數人認爲Go對他們公司的成功至少有些關鍵(44%)。雖然全部這些指標在2017年都有所增加,但今年仍保持穩定。

file

鑑於對於選擇Go以進行將來開發的強烈情緒,咱們但願瞭解阻止開發人員這樣作的緣由。自去年以來,這些基本保持不變:約有1/2的受訪者使用其餘語言編寫的現有項目,而且⅓在一個喜歡使用不一樣語言的團隊或項目上工做。缺乏語言功能和庫是受訪者未使用Go的最多見緣由。咱們還詢問了開發人員在使用Go時面臨的最大挑戰;與大多數調查問題不一樣,受訪者能夠輸入任何他們但願回答此問題的內容。咱們經過機器學習分析告終果,以肯定共同主題並計算支持每一個主題的響應數量。咱們肯定的三大挑戰是:

  • 包管理
  • 與其餘類似編程語言的差別
  • 缺少泛型

file

file

今年咱們添加了幾個關於開發人員對Go的不一樣方面的滿意度的問題。
調查受訪者對Go應用程序的CPU性能很是滿意。

對二進制大小的不滿主要來自構建CLI的開發人員,只有30%的人對Go生成的二進制文件的大小感到滿意。然而,對於全部其餘類型的應用程序,開發人員滿意度> 50%,而且二進制大小始終位於重要因素列表的底部。

相反,當咱們看看受訪者如何評價每一個方面的重要性時,可調性就很突出;44%的受訪者認爲可調試性是他們最重要或最重要的方面,但只有36%的受訪者對當前Go調試狀態感到滿意。可調試性一直被評爲與內存使用和構建速度同等重要,但滿意度水平顯着下降,不管受訪者構建的軟件類型如何,這種模式都是正確的。最新的兩個Go版本Go 1.11和1.12都包含對可調試性的重大改進。咱們計劃調查開發人員今年如何更深刻地調試Go應用程序,目標是改善Go開發人員的總體調試體驗。

file

file

開發環境

咱們詢問受訪者在編寫Go代碼時主要使用哪些操做系統。整體而言,41%的受訪者使用多種操做系統進行Go開發,突出了Go的跨平臺特性。以下圖所示:

file

去年,VS Code 將Vim視爲調查受訪者中最受歡迎的Go編輯。今年,它顯着擴大了其領先地位,成爲咱們調查受訪者中超過1/3的首選編輯(去年爲27%)。GoLand 也經歷了強勁的增加,如今是第二位最受歡迎的編輯,佔22%,與Vim交換位置(降至17%)。VS CodeGoLand 的迅速普及彷佛是以犧牲 Sublime TextAtom 爲代價的。Vim也看到受訪者的數量排名是他們的首選降低,但它仍然是最受歡迎的第二選擇編輯,佔14%。有趣的是,咱們發現受訪者對其選擇的編輯報告的滿意度沒有差別。

file

今年咱們還提出了一個問題,詢問哪些部署架構對Go開發人員最重要。不出所料,調查受訪者壓倒性地認爲 x86/x86-64 是他們的頂級部署平臺(76%的受訪者將其列爲最重要的部署架構,84%的受訪者將其列爲前3名)。然而,第二和第三選擇架構的排名是有益的:對ARM64(45%),WebAssembly(30%)和ARM(22%)有很大興趣,但對其餘平臺的興趣不大。

file

部署和服務

對於2018年,咱們看到從Go和非Go部署的內部部署到雲託管的趨勢的延續。將Go應用程序部署到本地服務器的受訪者比例從43%降至32%,這反映了非Go部署報告的46%→36%的降低。同比增加最快的雲服務包括AWS Lambda(Go爲4%→11%,非Go爲10%→15%)和Google Kubernetes Engine(Go爲8%→12%,5%→ 10%非Go)。代表 serverless 和容器正在成爲愈來愈流行的部署平臺。然而,這項服務增加彷佛是由已經採用雲服務的受訪者推進的,由於咱們發現今年至少部署到雲服務的受訪者百分比沒有顯着增加(55%→56%)。自2016年以來,咱們也看到Go部署到GCP的穩定增加,從受訪者的12%到19%增長。

file

也許與本地部署的減小有關,今年咱們看到雲存儲成爲調查受訪者中使用次數最多的服務,從32%增長到44%。身份驗證和聯合服務也出現了顯着增加(26%→33%)。從Go訪問的主要服務調查受訪者仍然是開源關係數據庫,其中61%→65%的受訪者表示。以下圖所示,服務使用量全面增長。

file

Go社區

尋找Go問題答案的頂級社區消息來源仍然是Stack Overflow(23%的受訪者將其標記爲最佳來源),Go網站(godoc.org爲18%,golang.org爲14%),並閱讀源代碼(通常爲源代碼的8%,GitHub的4%)。該排序與前幾年基本保持一致。Go新聞的主要來源仍然是Go博客,Redditr/golangTwitterHacker News。然而,這些也是本次調查的主要分配方法,所以該結果可能存在誤差。在下面的兩個圖表中,咱們將不到 <5% 的受訪者使用的來源分組爲「其餘」類別。

file

file

今年,55%的受訪者表示他們已經或有興趣爲Go社區作出貢獻,略低於去年的59%。由於貢獻的兩個最多見的領域(標準庫和官方Go工具)須要與核心Go團隊進行交互,咱們懷疑這種降低可能與參與者的百分比降低有關,他們贊成這些陳述「我以爲很樂意接近Go項目領導層的問題和反饋」(30%→25%)而且「我對Go的領導有信心(54%→46%)。

file

file

社區的一個重要方面是幫助每一個人感到受歡迎,特別是來自傳統上表明性不足的人羣。爲了更好地理解這一點,咱們詢問了一個關於幾個表明性不足的羣體的識別問題。2017年,咱們看到整年同比增加。對於2018年,咱們看到類似百分比的受訪者(12%)認爲是表明性不足的羣體的一部分,這與未被認定爲表明性不足的羣體的一部分的受訪者百分比顯着降低相配對。2017年,對於每一個被肯定爲表明性不足羣體的人,3.5人被肯定爲不屬於表明性不足的羣體(3.5:1比例)。在2018年,該比率提升到3.08:1。這代表Go社區至少保留了相同比例的表明不足的成員,甚至可能會增長。

file

維護一個健康的社區對於Go項目很是重要,所以在過去三年中咱們一直在衡量開發人員在Go社區中受到歡迎的程度。今年,咱們看到調查受訪者的百分比降低,他們贊成「我在Go社區中受到歡迎」這一說法,從66%到59%。

爲了更好地理解這種降低趨勢,咱們更仔細地觀察了哪些報告不太受歡迎。在傳統上表明性不足的羣體中,2018年報告感受不受歡迎的人數較少,這代表該領域的外展活動頗有幫助。相反,咱們發現有人使用Go的時間長度與他們感覺到的歡迎程度之間存在線性關係:較新的Go開發人員對於具備1 - 2年經驗的開發人員(62%)的歡迎程度(50%)顯然不那麼受歡迎,而這些開發人員反而比具備幾年經驗的開發人員(73%)更不受歡迎。這一數據解釋獲得了回答「對哪些變化會使Go社區更受歡迎?」這一問題的回答。受訪者的意見大體可分爲四類:

  • 減小對精英主義的見解,特別是對於Go的新人
  • 提升領導層的透明度
  • 增長介紹性資源
  • 更多活動和聚會,重點是覆蓋更廣闊的地理區域

這些反饋很是有用,併爲咱們提供了具體的領域,咱們能夠專一於改善成爲Go開發人員的體驗。雖然它不佔咱們用戶羣的很大一部分,但咱們很是重視這些反饋,並正在努力改進每一個領域。

file

file

結論

咱們但願您很高興看到咱們2018年開發者調查的結果。這些結果影響了咱們2019年的規劃,在接下來的幾個月裏,咱們將與您分享一些想法,以解決社區爲咱們強調的具體問題和需求。再次感謝爲這次調查作出貢獻的全部人!

By Todd Kulesza, Steve Francia

英文連接:https://blog.golang.org/surve...
翻譯來源:1024課堂

相關文章
相關標籤/搜索