繼新興語言Rust之後,Google力推的程式語言Go,也發布了自家的開發者大調查,這次Go官方總共收到了10,975份回覆,總數接近去年的兩倍。這次他們增加了許多有關使用者統計問題,以更好地了解受訪者的輪廓,官方表示,他們這次做的調查結果,與程式設計問答網站StackOverflow所做的2019年度調查結果相近。

這此問卷調查的受訪者56%使用Go不到兩年,整體使用者年資偏短,將Go用在工作中的比例占所有受訪者72%,而有62%的人把Go用在工作之外的專案,官方表示,在2018年的時候,將Go用在工作或是工作外專案的比例,都較前一年大幅增加,但是今年得到的結果與之前不同,也就是說這次受訪者較傾向在工作外使用Go,而在工作使用另一種語言,官方提到,他們在這份調查中的不同問題,看到了相似的異常值。

建置API/RPC和CLI仍是Go最多見的用法,比例分別為71%以及62%,問卷調查也詢問了受訪者使用Go的領域,有66%的人將Go用於網頁應用程式開發,其他常見的應用領域還有資料庫、網路程式、系統程式和DevOps任務等。

圖片來源/Go Team

在套件管理上,絕大多數的受訪者(89%),都已經透過Go命令使用Modules,官方提到,改變套件管理方法對於開發人員來說,是一個巨大的轉變,而此時整個社群正同時經歷這樣的改變。

由於Go在設計時,考慮了現代分散式運算,因此Go可以說是一個雲端語言,今年官方在問卷增加了有關雲端開發的問題,以更全面了解Go開發者和雲端供應商的關係。這次的調查可以明顯看到兩個趨勢,三大全球雲端供應商AWS、GCP和Azure,在受訪者的使用率都上升,其他的供應商每年使用率皆只有一小部分,且大部分都衰退,另外,企業自有或是就地部署的比例持續減少,已經和AWS的市占比例相去不遠。

開發者在不同雲端平臺以不同的方式部署Go工作負載,將工作負載部署到AWS和Azure的受訪者,有很大比例直接使用虛擬機器,分別為65%和51%,而部署到GCP的受訪者,則有64%的人使用Kubernetes平臺,幾乎是虛擬機器35%的兩倍。受訪者使用GCP和Azure的無伺服器平臺比例低,僅有17%和7%,而AWS卻有33%。

圖片來源/Go Team

大致所有的受訪者,對於三大主要雲端供應商的Go使用體驗都感到滿意,排序分別是AWS有80%的滿意度,GCP也有78%,而Azure較低只有57%,受訪者反應,Azure並沒有優先支援Go,也就是說沒有持續支援最新的Go版本,使得開發人員無法使用到最新的功能。

圖片來源/Go Team

針對Go的痛點,有79%的受訪者認為Go缺乏關鍵功能泛型(Generics),而有22%的受訪者認為官方應該繼續改進Go的除錯功能,另外還有13%的人要求更多的函式程式語言功能,特別像是map、filter和reduce等,官方特別指出,當Go提供了這些關鍵程式語言功能,則開發者將能夠更廣泛地使用Go。

在開源的表現上,Go雖然是一個開源專案,但是不代表Go的開發者也都會用Go來開發自由或是開源專案,從問卷的資料看起來,Go社群參與開源專案的比例正在縮小,不常與不曾參與開源專案的受訪者百分比,從2016年的71%逐年增加,到2019年達到75%;而受訪者中,僅有約7%到8%的受訪者,是穩定的開源專案貢獻者,會每天參與開源貢獻,每周與每月開源貢獻者比例皆逐年降低。

Go開發者主要在Linux和macOS上開發Go程式,分別有66%與53%,而Windows只有20%,而在編輯器選擇上,GoLand成長非常快速,從24%的使用率上升到34%,雖然VS Code成長速度減緩,但仍然位居Go開發者最愛IDE,有41%受訪者使用,第3與第4名分別為Vim和Emacs,前四名使用率占受訪者四分之三,且除了前兩名,其他編輯器使用率都在衰退。

官方提到,根據這次的調查,受訪者對於泛型、套件管理和工具三個領域最不滿意,因此在今年,這三個領域將會是Go團隊的重點關注項目,接下來幾個月內,他們會大幅改善模組、工具和開發者入門的體驗。


Advertisement

更多 iThome相關內容