每年 Go 官方都會舉辦一次 Go 開發者的調查,去年也不例外。不過調查完,收集了資料後就不見人影了...不然是社區和某時間的朋友們都會問我在哪裡可以看到。
這不,最近官方終於發布了《Go Developer Survey 2021 Results[1]》,我直接翻譯了(有刪減,僅展示重點內容),大家可以看看,了解下Go 的社群行情發展。
我們問受訪者在過去一年中是否評估過使用其他語言來取代Go。 43% 的受訪者表示,他們曾評估切換到 Go,或在先前沒有既定語言的情況下採用 Go。
這些評估中的 80% 主要是出於商業原因。
我們預期 Go 最常見的用例將是評估 Go 的人最常見的預期用途。到目前為止,API/RPC 服務是最常見的用途,但令人驚訝的是,資料處理是第二常見的預期用例。
在那些評估了 Go 的受訪者中,有 75% 最終使用了Go。 (當然,由於幾乎所有的調查對像都報告說在使用 Go,我們很可能沒有聽到那些評估過 Go 但決定不使用它的開發者的聲音)。
對於那些評估了 Go 但沒有使用 Go 的人,我們接著問他們有哪些挑戰阻礙了他們使用 Go,其中哪一個是主要障礙。
我們從這些結果中得到的情況支持了先前的發現,即缺少功能和缺乏生態系統/庫支持是採用Go的最重要的技術障礙。
我們詢問了更多關於受訪者缺少哪些功能或函式庫的細節,發現泛型是最常見的關鍵性缺失功能-- 我們希望在Go1.18 引入泛型之後,這將成為一個不那麼重要的障礙。接下來最常見的缺失功能是與 Go 的類型系統有關的。
我們希望在做出更多改變之前,看看引入泛型會如何影響或解決圍繞 Go 類型系統的潛在需求。
目前,我們將收集更多關於這些需求背景的信息,並可能在未來探索不同的方式來滿足這些需求,例如透過工具、函式庫或對類型系統的修改。
至於缺少的函式庫,對於增加什麼樣的函式庫可以解開最大比例的想採用Go的人的障礙,並沒有明確的共識。這需要進一步的探索。
那麼,當受訪者不選擇 Go 時,他們用什麼來代替呢?
Rust、Python 和 Java 是最常見的選擇。
Rust 和 Go 有互補的功能集,所以當 Go 無法滿足專案的功能需求時,Rust 可能是個不錯的選擇。
使用 Python 的主要原因是缺少庫和現有的基礎設施支持,所以 Python 的大型軟體包生態系統可能會使其難以轉換為 Go。
同樣地,使用 Java 的最常見的原因是 Go 的功能缺失,這可能會因為 1.18 版本中引入泛型而得到緩解。
讓我們看看 Go 在哪些方面做得好,哪些方面可以改進。
與去年一致,92% 的受訪者表示他們在過去一年中對 Go 的使用非常滿意或比較滿意。
今年,我們引入了一個新的問題,以探索在特定領域中確定工作優先順序的其他方法。
問題:"假設你有10 個GopherCoins 可以用來改善圍棋工作的以下方面。你會如何分配你的硬幣?"
突出的兩個領域是依賴性管理(使用模組)和診斷錯誤,這些領域我們將在2022 年投入資源。
在Go 依賴管理上,最常見的挑戰是:
與版本有關,9% 的答案討論了版本管理或更新依賴關係。排在前五名的是關於私有倉庫的挑戰(包括對 GitLab 的認證)和記住不同的 go mod 命令以及理解它們的錯誤訊息。
與往年一樣,絕大部分調查對象表示在Linux(63%)與macOS(55%)系統上使用Go。隨著時間的推移,主要在 Linux 上開發的受訪者的比例似乎略有下降的趨勢。
在使用 VSCode 外掛程式進行調查的受訪者中,有 91% 的受訪者在使用 Go 時更喜歡使用 VSCode。
#超過90% 的受訪者以Linux 為目標!儘管在macOS 上開發的受訪者比Windows多,但他們更常部署到Windows 而不是macOS。
整體回顧我們 2021 年的開發者調查結果 重申一下,一些關鍵的收穫。
簡單來講,就是欣欣向榮,大部分人對 Go 都比較滿意。
最大矛盾點是泛型和依賴管理。泛型已在 Go1.18 已經釋出,依賴管理持續在改進,也會加大對調試工具的最佳化。
以上是《2021 年 Go 官方開發者調查報告》的詳細內容。更多資訊請關注PHP中文網其他相關文章!