Go 語言2018 調查報告發布
Go官方博客今天公佈了 2018年Go語言調查報告。參與本次調查的5883名受訪者來自103個不同的國家,官方表示,這些受訪者的反饋意見將被選取用於改進Go語言的發展。知道大家都很忙,先直接看一下調查報告摘要:
- 首次有一半的受訪者表示Go是他們日常使用的編程語言之一。此外,在工作中用到Go語言以及在工作之餘使用Go語言的受訪者人數也顯著增加。
- Go最常見的用途仍然是編寫API/RPC服務和CLI工具。雖然用於自動化任務領域不像前兩者那麼常見,但也處於快速發展階段。
- Web開發仍然是受訪者最普遍的工作領域。與此同時, DevOps保持著年度最高的同比增長率,整體比例僅次於Web開發。
- 絕大多數受訪者表示Go 是他們最喜愛的編程語言,儘管熟練度不如其他語言高。
- VS Code 和GoLand 越來越受開發者歡迎,兩者都是他們最喜愛的編輯器。
- 許多Go 開發者的主力開發系統不止一個 —— Linux 和macOS 尤其受歡迎。大多數受訪者表示使用這兩者之一或全部來編寫Go 代碼。
- 受訪者正在逐漸放棄在將Go應用程序部署到本地,轉而選擇容器和無服務器(serverless)的雲部署。
- 大多數受訪者對Go社區的氛圍評價是友好,而且絕大部分改進Go社區的想法都是給新手提供更好的入門體驗。
調查報告的內容摘要如上,相關的具體數據以及細節請繼續閱讀(比較對像是2016 和2017 的調查數據)。
開發背景
本次的調查結果顯示,在工作用Go語言開發的受訪者人數顯著增加(68%→72%),此外在工作之餘使用Go語言的受訪者人數也在不斷增加(64%→70 %)。將Go作為日常使用的編程語言之一的受訪者數量比例更是首次達到50%(2016年為44%)。通過這些數據我們不難發現,越來越多的公司開始接受使用Go進行核心業務開發,而且Go語言在開發者群體中也飽受歡迎。
▲使用Go 語言的場景
▲使用Go 語言的頻率
▲使用Go 語言的時長
可以看到,受訪者普遍都有2 年以上的Go 開發經驗,且這個比例每年都保持增長,而Go 新手的比例也在逐年下降(這里新手的定義為使用Go 語言的時間是12 個月以內)。所以這就間接表明在入門Go 語言後,大多數開發者不會選擇放棄。
開發領域
調查結果顯示,絕大多數受訪者(72%)在2-5 個不同的開發領域工作。而Web 開發是最常見的領域,高達65%,佔據主導地位。DevOps 的比例也從36% 增加到41%,位居第二名。而係統編程則以39% 的比例次於DevOps。
▲受訪者的工作領域
自2016 年以來,Go 的主要用途都是編寫API/RPC 服務和開發CLI 應用程序。雖然CLI 的比例在三年內一直穩定保持在63%,但API/RPC 已從2016 年的60% 增加到2017 年的65%,再到今天的73%。在這些領域,Go 都發揮著自己的核心優勢,這恰好也是雲原生應用程序開發的核心。另一個同比增長的趨勢表明,自動化任務也是Go 在發力的一個領域,38% 的受訪者使用Go 編寫腳本和自動化任務(2016 年的比例為31%)。
▲受訪者使用Go 語言的具體領域
對Go 語言的態度
本次調查增加了一個“你有多大可能將Go推薦給朋友或同事? ”的問題,以此來計算淨推薦值(Net Promoter Score, NPS)。最終Go在2018年調查中的淨推薦值是61分(68%的倡導者- 7%的貶低者)。
▲Go 的NPS 分佈情況
除 NPS 之外,調查還包括其他幾個關於開發者對Go 滿意度的問題。總體而言,受訪者表示滿意度很高,與前幾年結果一致。大多數人表示他們對Go 感到滿意(89%),願意將Go 用於他們的下一個項目(85%),並且認為Go 對團隊有很大的價值(66%),同時也有不少人認為Go 對公司的成功至關重要(44%)。
另外,報告顯示長期被Go 使用者詬病的包管理和缺少泛型這兩個問題,依然是很多開發者使用Go 時所面臨的最大挑戰。
開發環境
問到受訪者在哪個平台進行Go開發時,大多數受訪者表示使用Linux(65%),50%表示使用macOS,18%使用Windows,與去年結果基本一致,Linux和macOS仍然是主導地位。總體而言,41%的受訪者使用多操作系統進行Go開發,這也體現了Go的跨平台特性。
▲進行Go 開發的平台
開發工具方面,VS Code 和GoLand 分別在最受喜愛的Go 編輯器排行榜上佔據第一、二名,Vim 排名第三。對於編輯器最期待的功能是改進對調試的支持,包括實時調試和集成調試等,此外就是代碼的自動補全可以更智能。其他的需求包括與Go CLI 工具鏈更好的集成,對模塊/包提供更好的支持,以及性能方面的改進。
▲最喜愛的Go 編輯器
部署和服務
2018 年,將Go 應用程序部署到本地服務器的受訪者比例從43% 降至32%,越來越多開發者選擇將Go 應用部署到雲上,無服務器和容器也正在變成越來越流行的部署平台。
▲部署Go 應用的平台
Go 語言社區氛圍
維護社區的健康對開源項目的發展非常重要,所以在過去三年裡Go團隊一直在關注開發者在Go社區是否有得到足夠的到關注和尊重。本次的調查結果顯示,“我在Go社區中有被關注的感覺”這一說法的比例,從66%下降到了59%。主要是Go新手得不到足夠的回應,從而對社區產生了疏遠感。被問到如何改進此問題時,官方整理的受訪者回答大致可分為:
- 老手不應有過分的優越感,特別是面對Go 新手時(例如不要表現出“不屑一顧”、和“放下防備心和傲慢的態度”)
- 加大領導層的透明度(例如“公開討論未來方向和規劃”、“減少自上而下的領導”、“更民主”)
- 增加更多的介紹性資源(例如“面向貢獻者提供更明確的介紹”、“最佳實踐的有趣挑戰”)
- 舉辦更多活動和聚會,重點是覆蓋更廣的地理區域
▲我在Go 社區中是否有被關注的感覺
最後
對Go 語言 2018 調查報告的介紹到此為止,不知各位對Go 語言的使用體驗如何,有怎樣的改進建議?不妨在留言區和我們分享一波~