Go語言2018年度調查結果報告
感謝
這篇文章總結了我們2018使用者調查的結果,與之前的 2016 和 2017 年的調查結果做了對比。
2018年我們調查了來自103個國家的 5,883 個調查受訪者。非常感謝提供反饋的每一個人,這個調查可以幫助塑造Go的未來。
調查結果摘要
- 首先,一半的調查受訪者使用Go語言作為他們日常使用的一部分。這一年我們看到了那些使用Go作為他們工作一部分的受訪者們在數量上有了非常大的增長。
- Go最常用做
API/RPC
服務和CLI
工具。自動化任務雖然不像CLI工具和API服務那麼常見,但卻是Go的一個快速發展的領域。 - Web開發 仍然是最常見到的領域,而
DevOps
的年增長率最高,也是現在第二常見到的領域。 - 絕大多數受訪者表示 Go 是他們最優先選擇的程式語言,儘管普遍感覺不如至少一種其他語言。
-
VS Code
和GoLand
也是人氣飆升,是調查受訪者中最受歡迎的程式碼編輯器。 - 突出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%)。
為了更好的瞭解開發者們都在哪使用Go,我們將結果分為三組來看:
- 1) 在工作中和工作之外都使用Go的人
- 2) 在工作中使用但是在工作之外不使用的人
- 3) 只在工作之外寫Go的人
將近一半(46%)的受訪者在工作和自己的業餘時間內編寫Go程式碼(自2017年以來增加了10個點),而其餘的受訪者則只是在工作中寫Go,或者只是在工作之外寫Go。大部分受訪者在工作中使用Go並選擇在工作之外使用它表明該語言吸引那些不將軟體工程視為日常工作的開發人員,他們也選擇在工作之外去hack一些程式碼,(85%的受訪者表示他們更喜歡Go作為他們的下一個專案)Go是他們更喜歡用於這些非工作相關專案的首選語言。
當被問及他們使用Go有多長時間時,參與者的答案隨著時間的推移呈現出強烈的趨勢,每年2-4和4年以上的響應中的回答率更高。這是一種較新的程式語言的預期,我們很高興看到Go新手的受訪者比例下降的速度比使用Go 2年以上的受訪者比例增加的速度慢,因為這表明開發人員在最初學習語言後並沒有退出生態系統。
與往年一樣,Go是受訪者的首選語言並且在語言中排名第一。大多數受訪者(69%)聲稱擁有5種不同語言的專業知識,強調他們對Go的態度受到其他程式設計棧體驗的影響。下面的圖表按照將每種語言排在最喜歡/理解的受訪者數量(最黑的藍色條形圖)排序,其中突出顯示了三個有趣的點:
- 雖然約有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開發人員 證實了這些資料,該調查還發現
Rust
,Kotlin
和Go
是最受歡迎的程式語言之一。
閱讀資料:參與者可以對他們的前5種語言進行排名。對於頂級排名,顏色編碼從深藍色開始,對於每個連續排名,顏色編碼變亮。這些圖表按照將每種語言列為首選的參與者的百分比進行排序。
開發領域
調查受訪者報告中位數為三個不同的領域,絕大多數(72%)在2-5個不同領域工作。Web開發最為普遍,達到65%,並且隨著主要受調查地區的調查人數的增加而增加其主導地位(去年為61%),自2016年以來,Web開發一直是Go開發的最常見領域。今年 DevOps
顯著增加,從36%到41%的受訪者,從系統程式設計中取得第二名。我們沒有發現2018年的使用率低於2017年的任何領域,這表明受訪者正在採用Go進行更廣泛的專案,而不是將使用從一個域轉移到另一個域。
自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%)。
為了更好地理解開發人員使用Go的背景,我們在不同行業中添加了關於Go採用的問題。對於一種相對較新的語言而言,也許不足為奇,超過一半的受訪者在 Internet/web
服務和軟體類公司(即科技公司)工作。其他僅有3%回覆的行業是金融,銀行或保險以及媒體,廣告,出版或娛樂。(在下圖中,我們將響應率低於3%的所有類別濃縮為“其他”類別。)我們將繼續跟蹤Go在各行業中的採用情況,以更好地瞭解技術公司以外的開發人員需求。
對Go的態度
今年我們添加了一個問題,詢問 『你有多大可能推薦給朋友或同事?』來計算我們的淨推薦分數。該分數試圖測量產品比“批評者”多多“促銷員”,範圍從-100到100;正值表明大多數人可能會推薦使用產品,而負值表明大多數人可能會建議不要使用它。我們的2018年得分是61(68%的推動者 - 7%的批評者),並將作為基線,幫助我們衡量社群對Go生態系統的情緒。
除了NPS之外,我們還詢問了幾個關於開發人員對Go的滿意度的問題。總體而言,受訪者表示滿意度很高,與前幾年一致。大多數人表示他們對Go感到滿意(89%),他們更願意將Go用於他們的下一個專案(85%),並且覺得它對他們的團隊運作良好(66%),而多數人認為Go對他們公司的成功至少有些關鍵(44%)。雖然所有這些指標在2017年都有所增長,但今年仍保持穩定。
鑑於對於選擇Go以進行未來開發的強烈情緒,我們希望瞭解阻止開發人員這樣做的原因。自去年以來,這些基本保持不變:約有1/2的受訪者使用其他語言編寫的現有專案,並且⅓在一個喜歡使用不同語言的團隊或專案上工作。缺少語言功能和庫是受訪者未使用Go的最常見原因。我們還詢問了開發人員在使用Go時面臨的最大挑戰;與大多數調查問題不同,受訪者可以輸入任何他們希望回答此問題的內容。我們通過機器學習分析了結果,以確定共同主題並計算支援每個主題的響應數量。我們確定的三大挑戰是:
- 包管理
- 與其他相似程式語言的差異
- 缺乏泛型
今年我們添加了幾個關於開發人員對Go的不同方面的滿意度的問題。
調查受訪者對Go應用程式的CPU效能非常滿意。
對二進位制大小的不滿主要來自構建CLI的開發人員,只有30%的人對Go生成的二進位制檔案的大小感到滿意。然而,對於所有其他型別的應用程式,開發人員滿意度> 50%,並且二進位制大小始終位於重要因素列表的底部。
相反,當我們看看受訪者如何評價每個方面的重要性時,可調性就很突出;44%的受訪者認為可除錯性是他們最重要或最重要的方面,但只有36%的受訪者對當前Go除錯狀態感到滿意。可除錯性一直被評為與記憶體使用和構建速度同等重要,但滿意度水平顯著降低,無論受訪者構建的軟體型別如何,這種模式都是正確的。最新的兩個Go版本Go 1.11和1.12都包含對可除錯性的重大改進。我們計劃調查開發人員今年如何更深入地除錯Go應用程式,目標是改善Go開發人員的整體除錯體驗。
開發環境
我們詢問受訪者在編寫Go程式碼時主要使用哪些作業系統。總體而言,41%的受訪者使用多種作業系統進行Go開發,突出了Go的跨平臺特性。如下圖所示:
去年, VS Code
將Vim視為調查受訪者中最受歡迎的Go編輯。今年,它顯著擴大了其領先地位,成為我們調查受訪者中超過1/3的首選編輯(去年為27%)。 GoLand
也經歷了強勁的增長,現在是第二位最受歡迎的編輯,佔22%,與Vim交換位置(降至17%)。 VS Code
和 GoLand
的迅速普及似乎是以犧牲 Sublime Text
和 Atom
為代價的。Vim也看到受訪者的數量排名是他們的首選下降,但它仍然是最受歡迎的第二選擇編輯,佔14%。有趣的是,我們發現受訪者對其選擇的編輯報告的滿意度沒有差異。
今年我們還提出了一個問題,詢問哪些部署架構對Go開發人員最重要。不出所料,調查受訪者壓倒性地認為 x86/x86-64
是他們的頂級部署平臺(76%的受訪者將其列為最重要的部署架構,84%的受訪者將其列為前3名)。然而,第二和第三選擇架構的排名是有益的:對ARM64(45%),WebAssembly(30%)和ARM(22%)有很大興趣,但對其他平臺的興趣不大。
部署和服務
對於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%增加。
也許與本地部署的減少有關,今年我們看到雲端儲存成為調查受訪者中使用次數最多的服務,從32%增加到44%。身份驗證和聯合服務也出現了顯著增長(26%→33%)。從Go訪問的主要服務調查受訪者仍然是開源關係資料庫,其中61%→65%的受訪者表示。如下圖所示,服務使用量全面增加。
Go社群
尋找Go問題答案的頂級社群訊息來源仍然是Stack Overflow(23%的受訪者將其標記為最佳來源),Go網站(godoc.org為18%,golang.org為14%),並閱讀原始碼(一般為原始碼的8%,GitHub的4%)。該排序與前幾年基本保持一致。Go新聞的主要來源仍然是Go部落格, Reddit
的 r/golang
, Twitter
和 Hacker News
。然而,這些也是本次調查的主要分配方法,因此該結果可能存在偏差。在下面的兩個圖表中,我們將不到 <5%
的受訪者使用的來源分組為“其他”類別。
今年,55%的受訪者表示他們已經或有興趣為Go社群做出貢獻,略低於去年的59%。因為貢獻的兩個最常見的領域(標準庫和官方Go工具)需要與核心Go團隊進行互動,我們懷疑這種下降可能與參與者的百分比下降有關,他們同意這些陳述“我覺得很樂意接近Go專案領導層的問題和反饋”(30%→25%)並且“我對Go的領導有信心(54%→46%)。
社群的一個重要方面是幫助每個人感到受歡迎,特別是來自傳統上代表性不足的人群。為了更好地理解這一點,我們詢問了一個關於幾個代表性不足的群體的識別問題。2017年,我們看到全年同比增長。對於2018年,我們看到相似百分比的受訪者(12%)認為是代表性不足的群體的一部分,這與未被認定為代表性不足的群體的一部分的受訪者百分比顯著下降相配對。2017年,對於每個被確定為代表性不足群體的人,3.5人被確定為不屬於代表性不足的群體(3.5:1比例)。在2018年,該比率提高到3.08:1。這表明Go社群至少保留了相同比例的代表不足的成員,甚至可能會增加。
維護一個健康的社群對於Go專案非常重要,因此在過去三年中我們一直在衡量開發人員在Go社群中受到歡迎的程度。今年,我們看到調查受訪者的百分比下降,他們同意“我在Go社群中受到歡迎”這一說法,從66%到59%。
為了更好地理解這種下降趨勢,我們更仔細地觀察了哪些報告不太受歡迎。在傳統上代表性不足的群體中,2018年報告感覺不受歡迎的人數較少,這表明該領域的外展活動很有幫助。相反,我們發現有人使用Go的時間長度與他們感受到的歡迎程度之間存線上性關係:較新的Go開發人員對於具有1 - 2年經驗的開發人員(62%)的歡迎程度(50%)顯然不那麼受歡迎,而這些開發人員反而比具有幾年經驗的開發人員(73%)更不受歡迎。這一資料解釋得到了回答“對哪些變化會使Go社群更受歡迎?”這一問題的回答。受訪者的意見大致可分為四類:
- 減少對精英主義的看法,特別是對於Go的新人
- 提高領導層的透明度
- 增加介紹性資源
- 更多活動和聚會,重點是覆蓋更廣闊的地理區域
這些反饋非常有用,併為我們提供了具體的領域,我們可以專注於改善成為Go開發人員的體驗。雖然它不佔我們使用者群的很大一部分,但我們非常重視這些反饋,並正在努力改進每個領域。
結論
我們希望您很高興看到我們2018年開發者調查的結果。這些結果影響了我們2019年的規劃,在接下來的幾個月裡,我們將與您分享一些想法,以解決社群為我們強調的具體問題和需求。再次感謝為此次調查做出貢獻的所有人!
英文連結: https://blog.golang.org/surve...
翻譯來源: 1024課堂