近日,GO 開發者中心官方釋出了“2021 Go 開發者調查報告”。
據悉,該報告在 2021 年 10 月 26 日至 11 月 16 日期間,共收集到 11840 個 responses 回覆,成為調查發起 6 年以來反響最大的一次。
其中,報告結果裡一些關鍵的點如下:
- 92% 的受訪者對 Go 的滿意度仍然很高,75% 的受訪者在工作中使用 Go;
- 開發者使用 Go 最常見的問題包括“缺少關鍵庫、語言特性和基礎設施”(Go 1.18 已支援泛型);
- 使用模組時最大的挑戰涉及版本控制、使用私有回購和多模組工作流(Go 1.18 已解決);
- 受訪者還希望優先改善“除錯和依賴關係管理”;
- 81% 的受訪者對 Go 專案的長期方向充滿信心。
76% 受訪者用 Go 程式設計:API/RPC 服務最多
該報告資料顯示,2019 、2020、2021 年以來,Go 都主要用於科技行業,金融服務行業次之。其中 70% 的受訪者是軟體開發人員,多數人在 IT 或 DevOps 工作。
另外,76% 的受訪者表示在工作時使用 Go 程式設計,其中用作 API 閘道器和 RPC 微服務設計工作的最多,其次為用作可執行互動式程式。
新使用者“畫像”:主要為大/中小企業,僅在工作時用 Go
此次調查報告中,大多數受訪者將其組織描述為企業或中小型企業,約 25% 的受訪者則將其組織描述為初創企業,絕大多數受訪者的團隊成員少於10人。企業型別中,諮詢公司和公共機構則不常見,
另外,調查中超過一半(55%)的受訪者每天都在上班,同時受訪者在工作之外使用 Go 的頻率較低。
女性佔比 2%:Go 社群重視多樣性和包容性
調查報告的“性別認同”一項顯示,女性開發者比例佔調查者的 2% ,與前幾年相同,這從另一個維度來衡量了 Go 社群的包容性。
新挑戰:43% 的受訪者改用/放棄 Go
結合調查報告裡“未使用 Go 程式設計的實際案例以及原因”,在 2022 年裡,Go 團隊對此前存在的一些問題進行了修復調整。
在詢問受訪者在 2021 年裡“是否使用另一種語言對 Go 進行了評估”之後,43% 的受訪者表示,他們曾評估過在沒有既定程式語言的情況下改用 Go、放棄 Go 或採用 Go。
其中, 42% 的受訪者表示“從未”,27% 的此前使用其他程式語言的受訪者後來轉向了 Go。另外,有 80% 的評估主要是出於商業原因。
Go 程式設計最常用途: API/RPC 服務,資料處理次之
此次調查報告顯示,到目前為止,Go 最常見的“預期用途”為 API/RPC 服務(佔比 49%),不過沒想到排在第二“常見預期用途”的是資料處理(Data Processing 佔比 10%),同樣 Web 服務同樣佔比 10%。
90% 受訪者作業系統以 Linux 為主
與前幾年一樣,絕大多數受訪者在報告表示他們在 Linux(63%)和macOS(55%)系統上使用 Go。其中,從 2019 年到 2021 年,主要在 Linux 上開發的受訪者比例略有下降。
調查資料中,超過 90% 的受訪者使用的作業系統以 Linux 為主,儘管在 macOS 上開發的受訪者比在 Windows 上開發的受訪者多,但他們在 Windows 上部署的 頻率比 macOS 高。
Go 技術缺陷調查:Go 1.18 已支援泛型可解決
對於那些評估了 Go 但沒有使用它的人,調查報告裡也對此作了詢問:是什麼挑戰阻止了他們使用 Go,以及其中哪些是主要障礙:
由於此次調查是在 Go 1.18 釋出之前進行的,Go 1.18 已支援泛型,因此調查結果排在前面的如“缺少需要對額關鍵特徵”“缺少關鍵庫”“缺乏生態系統/庫支援”等最重要技術障礙這些問題已經得到解決。
當然,另一個最常見的缺失功能與 Go 的型別系統有關。在進行其他更改之前,Go 方面還需要了解引入泛型如何影響或解決 Go 型別系統的潛在需求,在收集有關這些需求的上下文的更多資訊之後,再在未來探索不同的方式來滿足這些需求,例如透過工具、庫或更改型別系統。
報告顯示,與去年一致,92% 的受訪者表示他們對過去一年中使用 Go 非常滿意或有些滿意。