2022 年第二季度 Go 開發(fā)者調(diào)查報告
Go 博客發(fā)布了 2022 年第二季度 Go 開發(fā)者調(diào)查報告。據(jù)介紹,總共有 5752 名開發(fā)者參與了本次調(diào)查,分享了他們使用 Go 1.18 中新特性的經(jīng)驗(yàn)和心得。
主要發(fā)現(xiàn)
- 泛型已被迅速采用。大多數(shù)受訪者都知道 Go 1.18 已正式支持泛型,大約四分之一的受訪者表示他們已經(jīng)開始在 Go 代碼中使用泛型。不過開發(fā)者也已經(jīng)遇到了初始泛型實(shí)現(xiàn)的一些限制。
- Fuzzing(模糊測試)?對大多數(shù) Go 開發(fā)者來說是新事物。受訪者對 Go 內(nèi)置模糊測試的認(rèn)知遠(yuǎn)低于泛型,并且他們對于為什么或何時考慮使用模糊測試有更多的不確定性。
- 第三方依賴是最重要的安全問題。避免具有已知漏洞的依賴項(xiàng)是受訪者面臨的最大安全相關(guān)挑戰(zhàn)。更廣泛地說,安全工作通常是沒有計劃、也沒有回報的,這意味著工具需要獲取開發(fā)者的時間和注意力。
- 官方在發(fā)布新功能時可以做得更好。與通過 Go 博客找到此次調(diào)查的人相比,隨機(jī)抽樣的參與者不太可能了解最近的 Go 工具版本。這說明官方應(yīng)該在博客文章之外尋找機(jī)會交流 Go 生態(tài)的變化,或者擴(kuò)大影響力以更廣泛地分享這些文章。
- Error handling(錯誤處理)仍然是一個挑戰(zhàn)。隨著泛型的發(fā)布,受訪者在使用 Go 時面臨的最大挑戰(zhàn)轉(zhuǎn)移到了錯誤處理上。不過總體而言,開發(fā)者對 Go 的滿意度仍然很高,而且受訪者表示他們使用 Go 的方式?jīng)]有明顯變化。
受訪者對 Go 泛型的認(rèn)知情況
絕大多數(shù)受訪者 (86%) 已經(jīng)知道泛型是作為 Go 1.18 版本的一部分而發(fā)布。官方稱這個比例比他們預(yù)期的要高得多。此外,大約四分之一的受訪者已經(jīng)開始在 Go 代碼中使用泛型 (26%),其中 14% 的人表示他們已經(jīng)在生產(chǎn)或發(fā)布的代碼中使用了泛型。大多數(shù)受訪者 (54%) 并不反對使用泛型,但目前并不需要它們。還有 8% 的受訪者表示,他們想在 Go 中使用泛型,但目前被某些東西阻止了。
所以是什么阻止了開發(fā)者使用泛型?大多數(shù)受訪者屬于以下兩個類別之一。第一,30% 的受訪者表示他們遇到了當(dāng)前泛型實(shí)現(xiàn)的限制,例如所需要的參數(shù)化方法、改進(jìn)類型推斷或切換類型。受訪者表示,這些問題限制了泛型的潛在用例,或者認(rèn)為它們導(dǎo)致泛型代碼不必要地冗長。第二類涉及尚不支持泛型的事物 ——linter 是最常見的工具,此外還包括組織仍然使用早期的 Go 版本或依賴于尚未支持的 Linux 發(fā)行版。
12% 的受訪者表示 Go 泛型學(xué)習(xí)曲線陡峭或缺乏有用的文檔。除了這些最重要的問題,受訪者還介紹了一系列不太常見的挑戰(zhàn),如下圖所示:
受訪者使用 Go 開發(fā)什么?
兩個最常見的用例仍然是構(gòu)建 API/RPC 服務(wù) (73%) 和編寫 CLI (60%)。
Go 團(tuán)隊(duì)使用線性模型來調(diào)查受訪者使用 Go 的時間與他們使用 Go 構(gòu)建的東西的類型之間是否存在關(guān)系。最終發(fā)現(xiàn),具有 < 1 年 Go 開發(fā)經(jīng)驗(yàn)的受訪者更有可能在該圖表的下半部分構(gòu)建一些東西(GUI、物聯(lián)網(wǎng)、游戲、ML/AI 或移動應(yīng)用程序),這表明他們對在這些領(lǐng)域使用 Go 感興趣。但擁有 1 年 Go 開發(fā)經(jīng)驗(yàn)后,這些開發(fā)者更少關(guān)注上述領(lǐng)域,這意味著他們在這些領(lǐng)域使用 Go 時遇到重大障礙。
大多數(shù)受訪者在使用 Go 開發(fā)時使用 Linux (59%) 或 macOS (52%),絕大多數(shù)部署到 Linux 系統(tǒng) (93%)。在此次調(diào)查中,官方添加了一個在 WSL 上開發(fā)的選項(xiàng),最后 13% 的受訪者選擇了該選項(xiàng)。
受訪者在編寫 Go 代碼時最喜愛的編輯器
可以看到,免費(fèi)開源的 Visual Studio Code 是 Go 開發(fā)者編寫代碼的主流選擇 (45%),GoLand 的比例略低 (34%)。
??完整報告??。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:2022 年第二季度 Go 開發(fā)者調(diào)查報告
本文地址:https://www.oschina.net/news/210003/go-survey2022-q2-results