2020年Go開發(fā)者調(diào)查結果
2020年Go開發(fā)者調(diào)查結果
原文地址:https://blog.golang.org/survey2020-results
原文作者:Alice Merrick
本文永久鏈接:https://github.com/gocn/translator/blob/master/2021/w11GoDeveloperSurvey2020_Results.md
譯者:lsj1342
校對:guzzsek
感謝您帶來令人興奮的回應!
2020年,我們的參與人數(shù)達到了9,648人,這個數(shù)據(jù)大約和2019年時一樣多。感謝您抽出寶貴的時間為社區(qū)提供了有關于您在使用Go時的一些見解!
新的模塊化設計調(diào)查
您可能注意到一些問題的樣本量("n=")是比其他樣本小的。這是因為某些問題是向所有人公開的,而另一些問題僅向隨機的一部分受訪者展示。
重點
Go 的使用場景和在企業(yè)中的應用正在不斷地擴大,其中76%的受訪者表示在工作中使用Go,并且66%的受訪者表示Go語言對他們公司的成功有至關重要的作用。
總體滿意度很高,其中92%的受訪者在使用Go時感到滿意。。
大多數(shù)的受訪者在不到三個月的時間里察覺到了Go的生產(chǎn)力,81%的受訪者覺得Go的生產(chǎn)力非常高或極其高。
受訪者報告稱約76%的人在前5個月就已迅速升級到了Go的最新版本。
使用pkg.go.dev的受訪者(91%)比非使用者(82%)更能成功的找到Go軟件包。
Go模塊已經(jīng)被普遍采用了,滿意度為77%,受訪者們強調(diào)還需要改進文檔。
Go仍然大量用于API、CLI、Web、DevOps和數(shù)據(jù)處理。
代表性不足的群體 在社區(qū)中往往會受到較少的歡迎。
我們聆聽了誰的聲音?
受訪者統(tǒng)計問題可以幫助我們辨識出,哪些年度差異是由我們的調(diào)查受訪者們的情緒或行為導致的。因為我們受訪者特征和去年相似,所以我們可以有把握的相信受訪者特征對年度差異變化的影響不大。
例如,從2019年到2020年,組織規(guī)模、開發(fā)者的經(jīng)驗和行業(yè)的分布大致相同。



幾乎一半(48%)的受訪者使用Go的時間不到兩年。到2020年,我們已經(jīng)很少能收到使用Go不到一年的人對調(diào)查的回應。

大多數(shù)人表示,他們會在工作(76%)和工作外(62%)時使用Go。工作中使用Go的受訪者比例逐年上升。

今年我們提出了有關主要工作職責的新問題。我們發(fā)現(xiàn),有70%的受訪者的主要責任是開發(fā)軟件和應用,但也有相當一部分受訪者正在設計IT系統(tǒng)和體系結構。

與往年一樣,我們發(fā)現(xiàn)大多數(shù)受訪者并不是Go開源項目的頻繁貢獻者,有75%的受訪者表示他們“很少”或“從不”這么做。

開發(fā)人員工具和實踐
與往年一樣,絕大多數(shù)被調(diào)查者表示在Linux(63%)和macOS(55%)系統(tǒng)上使用Go。隨著時間的推移,主要在Linux上進行開發(fā)的受訪者比例略有下降。

編輯器的偏好似乎第一次穩(wěn)定了下來:VS Code仍然是最受歡迎的編輯器(41%),其次是Goland(35%)。這兩類就占據(jù)了76%的比例,其他的編輯器喜好并沒有像往年一樣繼續(xù)下降,

今年,我們要求受訪者在假設他們擁有100個“GopherCoins”(一種虛擬貨幣)的情況下,會花多少錢來優(yōu)先改善他們的編輯器。代碼自動補全功能獲得的GopherCions的平均數(shù)量最高。一半的受訪者表示愿意花費10個或者更多的GopherCoins來改善這四個功能(代碼補全、代碼導航、編輯器性能和重構)。

大多數(shù)的受訪者(63%)會花費他們10-30%的時間來重構,這表明重構是一項常見任務,并且我們希望研究一些方法來改善它。這也解釋了為什么編輯器支持重構是獲得投幣數(shù)量最多的改進之一。

去年,我們詢問了一些特定的開發(fā)技能,其中接近 90% 的受訪者正在使用文本日志的方式進行調(diào)試,為了找出這個問題的原因,我們今年增加了一個后續(xù)的問題。結果表明,有43%的人是因為跨語言時可以使用相同的調(diào)試策略,還有42%的人更喜歡文本記錄而不是其他的調(diào)試技術。但是,有27%的人是不知道如何開始使用Go的調(diào)試工具,還有24%的人從未嘗試過使用Go的調(diào)試工具,因此就有機會在發(fā)現(xiàn)性、可用性和文檔方面來改進調(diào)試工具。此外,由于四分之一的受訪者從未嘗試使用調(diào)試工具,因此該痛點可能被低估。

對Go的態(tài)度
今年,我們是第一次詢問人們對Go的整體滿意度。92%的受訪者表示,在過去的一年里,他們在使用Go時感到非常滿意。

這是我們第三年問”你會推薦...“這樣的凈推薦值問題(NPS)。今年我們得到的NPS值為61(“推薦者”為68%,“拒絕者”為6%),結果與2019年和2018年相比沒有變化。

與前幾年相似,有91%的受訪者表示他們更愿意將Go用于其下一個新項目。89%的人說Go在他們的團隊表現(xiàn)很好。今年,我們看到認同Go對公司成功至關重要的受訪者從2019年的59%增加到2020年的66%。在擁有5,000名或更多員工的組織中工作的受訪者不太可能認同(63%),而那些在較小的組織中的受訪者,更可能會認同(73%)。

與去年一樣,我們要求受訪者根據(jù)滿意度和重要性對Go開發(fā)的特定領域進行評分。云服務,調(diào)試和模塊(去年的改進重點)的滿意度有所增加,而大多數(shù)重要性分數(shù)卻保持不變。我們還引入了兩個新主題:API和Web框架。我們看到Web框架的滿意度低于其他領域(64%)。對于大多數(shù)當前用戶而言,它并不是那么重要(只有28%的受訪者表示它非常重要),但是對于潛在的Go開發(fā)人員來說,它可能是缺失的關鍵特性。

81%的受訪者表示,使用Go時會感到非常高效。大型組織的受訪者比小型組織的受訪者更能感受到這一點。

我們聽到,使用Go可以輕松快速地實現(xiàn)生產(chǎn)。我們詢問了那些感受到Go的高效的受訪者,他們花費多長的時間才能變得高效。93%的人說用了不到一年的時間,大多數(shù)人在3個月內(nèi)就感覺到了高效。

盡管與去年大致相同,但認同“在Go社區(qū)中我感到受歡迎”這一說法的受訪者的百分比似乎隨著時間的推移呈下降趨勢,或者至少沒有與其他領域保持相同的上升趨勢。
我們還發(fā)現(xiàn),認為Go的項目領導理解他們需求的受訪者比例逐年顯著上升(63%)。
所有這些結果表明,從大約兩年開始,更多的認同與Go的體驗提高相關。換句話說,受訪者使用Go的時間越長,他們越可能同意這些陳述。

我們詢問了一個關于如何使Go社區(qū)更受歡迎的開放問題。最普遍的建議(21%)是與學習資源和文檔不同形式的改進/增加相關的。

使用Go
構建API/RPC服務(74%)和CLI(65%)仍然是Go的最常見用途。與去年相比,我們在選項的排序中引入了隨機化之后,看不到任何重大變化。(在2019年之前,選擇列表開頭的選項不成比例。)我們還根據(jù)組織規(guī)模對此進行了細分,發(fā)現(xiàn)受訪者在大型企業(yè)或小型組織中使用Go的方式相似,盡管大型組織使用Go來做返回HTML的Web服務的可能性更小。

今年,我們對被訪者在家中還是在工作中用Go寫哪種軟件進行了更好的了解。盡管返回HTML的Web服務是最常見的第4個用例,但這是由于與工作無關的使用所致。與返回HTML的Web服務相比,更多的受訪者將Go用于自動化/腳本,代理和守護程序以及用于工作的數(shù)據(jù)處理。大部分非常規(guī)用途(臺式機/ GUI應用程序,游戲和移動應用程序)是在工作以外編寫的。

另一個新問題是,對于每個用例,受訪者的滿意度如何。CLI的滿意度最高,有85%的受訪者表示對Go for CLI的使用感到非常,中等或略微滿意。Go的常用用法往往具有較高的滿意度得分,但滿意度和受歡迎程度并不完全對應。例如,代理和守護程序的滿意度比例第二高,但使用率排名第六。

其他后續(xù)問題探討了不同的用例,例如,受訪者使用其CLI的平臺。Linux(93%)和macOS(59%)的高占有率并不奇怪,因為開發(fā)人員對Linux、macOS和Linux云的使用率很高。但是,Windows也成為了將近三分之一的CLI開發(fā)人員的目標。

仔細研究Go的數(shù)據(jù)處理可以發(fā)現(xiàn),Kafka是唯一被廣泛采用的引擎,但是大多數(shù)受訪者表示,他們將Go與自定義的數(shù)據(jù)處理引擎一起使用。

我們還詢問了受訪者使用Go的更大領域。到目前為止,最常見的領域是Web開發(fā)(68%),但其他常見的領域包括數(shù)據(jù)庫(46%),DevOps(42%)網(wǎng)絡編程(41%)和系統(tǒng)編程(40%)。

與去年相似,我們發(fā)現(xiàn)76%的受訪者會評估當前的Go版本以供生產(chǎn)使用,但是今年我們調(diào)整了時間范圍,并且發(fā)現(xiàn)60%的受訪者在發(fā)布前或發(fā)布后2個月內(nèi)開始評估新版本。這對于平臺即服務提供商快速支持Go的新穩(wěn)定版本方面是非常重要的。

模塊
今年,我們發(fā)現(xiàn)Go模塊幾乎被普遍采用,并且僅使用模塊來管理軟件包的受訪者比例顯著增加。96%的受訪者表示,他們正在使用模塊進行軟件包管理,而去年這一比例為89%。87%的被調(diào)查者表示他們僅使用模塊來包管理,而去年為71%。同時,其他軟件包管理工具的使用已經(jīng)減少了。

受訪者對模塊的滿意度相比去年也有所提高。其中77%的受訪者表示,他們對模塊感到非常,中度或略微滿意,而這一比例在2019年為68%。

官方文檔
大多數(shù)受訪者表示,他們在使用官方文檔時遇到困難。62%的受訪者難以找到足夠的信息來完全實現(xiàn)其應用程序的功能,并且三分之一以上的受訪者則難以開始他們以前從未做過的事情。

官方文檔中最有問題的領域是模塊使用和CLI開發(fā),有20%的受訪者認為模塊文檔稍微有用或根本沒有幫助,而16%的受訪者面對關于CLI開發(fā)的文檔也是這樣認為的。

云上的Go
Go在設計時就考慮了現(xiàn)代的分布式計算,我們希望繼續(xù)改善開發(fā)人員使用Go構建云服務的體驗。
在調(diào)查受訪者中,全球的三大云服務提供商(Amazon Web Services,Google Cloud Platform和Microsoft Azure)的使用率持續(xù)增加,而大多數(shù)的其他提供商在每年的調(diào)查中使用過的受訪者比例都較小。尤其是Azure,已經(jīng)從7%大幅增長到了12%。
作為最常見的部署目標,在自有或公司的服務器本地部署的比例也在持續(xù)降低

部署在AWS和Azure的受訪者見證了部署到托管Kubernetes平臺的增長,現(xiàn)在分別為40%和54%。Azure看到將Go程序部署到VM的用戶比例顯著下降,容器使用率從18%增長到25%。同時,在GCP(已經(jīng)有很大比例的受訪者報告了托管的Kubernetes使用情況)可以看到無服務器化的Cloud Run部署從10%增長到17%。

總體而言,大多數(shù)受訪者對在三大主流云服務商提供的云上使用Go感到滿意,并且統(tǒng)計數(shù)字與去年相比沒有變化。受訪者表示,對于AWS(82%的滿意)和GCP(80%)上的Go開發(fā),其滿意程度相似。而Azure的滿意度較低(滿意度為58%),自由回復中經(jīng)常提到需要改進Azure的Go SDK和對Azure功能的Go版支持。

痛點
受訪者不能繼續(xù)使用Go的前幾個主要原因是項目使用另一種語言進行開發(fā)(54%),工作團隊更喜歡使用另一種語言(34%)以及Go本身缺乏一些關鍵特性(26%)。
今年,我們引入了一個新選項,“我已經(jīng)在想用的任何地方都使用了Go”,以便受訪者可以選擇不妨礙他們使用Go的選項。這大大降低了所有其他選項的選擇率,但沒有改變它們的相對順序。我們還引入了一個“缺乏關鍵框架”選項。
如果我們僅看受訪者不使用Go的原因,則可以更好地了解逐年趨勢。使用另一種語言來處理現(xiàn)有項目和項目/團隊/負責人對另一種語言的偏好正在減少。

在說Go缺乏他們所需語言特性的26%的受訪者中,88%的人認為泛型是Go缺乏的關鍵特性。其他重要缺失的特性是需要更好地錯誤處理(58%),空安全(44%),函數(shù)編程(42%)以及更強大/可擴展的類型系統(tǒng)(41%)。
需要明確的是,這些數(shù)字來自那些認為如果Go不缺失一個或多個關鍵特性,會更多地使用Go的受訪者子集,而不是整個受訪者群體。換個角度看,由于缺乏泛型,有18%的受訪者無法使用Go。

受訪者報告說,使用Go時遇到的最大挑戰(zhàn)是Go缺乏泛型(18%),而模塊/軟件包管理以及學習曲線/最佳實踐/文檔的問題均占13%。

Go社區(qū)
今年,我們向受訪者詢問了他們用于回答與Go相關問題的前5個資源。去年,我們只要求前三個,因此結果不能直接比較,但是,StackOverflow仍然是最受歡迎的資源,占65%。閱讀源代碼(57%)仍然是另一種流行的資源,而對godoc.org的依賴(39%)大大減少了。軟件包發(fā)現(xiàn)站點pkg.go.dev是今年第一次出現(xiàn)在列表,是32%受訪者的首選資源。使用pkg.go.dev的受訪者更加認同在此能夠快速找到所需的Go軟件包/庫:pkg.go.dev用戶為91%,其他人為82%。

多年來,未參加任何與Go相關活動的受訪者的比例一直在上升。由于Covid-19,今年我們修改了有關Go活動的問題,并發(fā)現(xiàn)超過四分之一的受訪者在線上Go頻道上花費的時間比往年多,有14%的人參加了Go的虛擬會議,是去年的兩倍。參加虛擬活動的人中有64%表示這是他們的第一次虛擬活動。

我們發(fā)現(xiàn)12%的受訪者認為自己屬于傳統(tǒng)上代表性不足的群體(例如,種族,性別認同等),這個結果與2019年相同,而對此認同的2%為女性,少于2019年(3%)。認同此想法的受訪者與不認同的相比,對“我在Go社區(qū)表示歡迎”這一說法的異議率更高(10%vs. 4%)。這些問題使我們能夠衡量社區(qū)中的多樣性,并重視拓展和增長的機會。



我們今年在輔助技術的使用上又增加了一個問題,發(fā)現(xiàn)8%的受訪者正在使用某種形式的輔助技術。最常用的輔助技術是對比度或顏色設置(2%)。這大大提醒我們,我們的用戶具有訪問性需求,這也有助于在Go團隊管理的網(wǎng)站上推動我們的某些設計決策。

Go團隊重視多樣性和包容性,這不僅是做對的事情,還因為多樣化的聲音可以照亮我們的盲點,并最終使所有用戶受益。根據(jù)數(shù)據(jù)隱私法規(guī),我們詢問敏感信息(包括性別和傳統(tǒng)上代表性不足的群體)的方式已經(jīng)改變,并且我們希望在未來使這些問題(尤其是有關性別多樣性的問題)更具包容性。
結論
感謝您與我們一起審查2020年開發(fā)者調(diào)查結果!了解開發(fā)人員的經(jīng)驗和挑戰(zhàn)可幫助我們衡量進展并指導Go的未來。再次感謝為這項調(diào)查做出貢獻的每個人-沒有您,我們不可能做到。希望明年見!
相關文章
Announcing the 2020 Go Developer Survey
Go Developer Survey 2019 Results
Proposals for Go 1.15
Announcing the 2019 Go Developer Survey
Contributors Summit 2019
Experiment, Simplify, Ship
Next steps toward Go 2
Go 2018 Survey Results
Go 2, here we come!
Nine years of Go
Participate in the 2018 Go User Survey
Participate in the 2018 Go Company Questionnaire
Go 2 Draft Designs
Go 2017 Survey Results
Hello, 中國!
Participate in the 2017 Go User Survey
Eight years of Go
Community Outreach Working Group
Contribution Workshop
Contributors Summit
Toward Go 2
Go 2016 Survey Results
Participate in the 2016 Go User Survey and Company Questionnaire
Go, Open Source, Community
GopherChina Trip Report
Four years of Go
Get thee to a Go meetup
Go turns three
Getting to know the Go community
The Go Programming Language turns two
Spotlight on external Go libraries
Third-party libraries: goprotobuf and beyond
