slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
2022 年第二季度 Go 开发者调查报告发布
17611538698
webmaster@21cto.com

2022 年第二季度 Go 开发者调查报告发布

资讯 0 1246 2022-09-23 10:55:45

图片

导读:Go 语言开发团队博客发布了 2022 年第二季度 Go 开发者调查报告。

据介绍,总共有 5752 名开发者参与了本次调查,分享了他们使用 Go 1.18 中新特性的经验和心得。

图片

主要发现如下:

  • 泛型已被迅速采用。大多数受访者都知道 Go 1.18 已正式支持泛型,大约四分之一的受访者表示他们已经开始在 Go 代码中使用泛型。不过开发者也已经遇到了初始泛型实现的一些限制。

  • Fuzzing(模糊测试)对大多数 Go 开发者来说是新事物。受访者对 Go 内置模糊测试的认知远低于泛型,并且他们对于为什么或何时考虑使用模糊测试有更多的不确定性。

  • 第三方依赖是最重要的安全问题。避免具有已知漏洞的依赖项是受访者面临的最大安全相关挑战。更广泛地说,安全工作通常是没有计划、也没有回报的,这意味着工具需要获取开发者的时间和注意力。

  • 官方在发布新功能时可以做得更好。与通过 Go 博客找到此次调查的人相比,随机抽样的参与者不太可能了解最近的 Go 工具版本。这说明官方应该在博客文章之外寻找机会交流 Go 生态的变化,或者扩大影响力以更广泛地分享这些文章。

  • Error handling(错误处理)仍然是一个挑战。随着泛型的发布,受访者在使用 Go 时面临的最大挑战转移到了错误处理上。不过总体而言,开发者对 Go 的满意度仍然很高,而且受访者表示他们使用 Go 的方式没有明显变化。


受访者对 Go 泛型的认知情况

绝大多数受访者 (86%) 已经知道泛型是作为 Go 1.18 版本的一部分而发布。官方称这个比例比他们预期的要高得多。此外,大约四分之一的受访者已经开始在 Go 代码中使用泛型 (26%),其中 14% 的人表示他们已经在生产或发布的代码中使用了泛型。大多数受访者 (54%) 并不反对使用泛型,但目前并不需要它们。还有 8% 的受访者表示,他们想在 Go 中使用泛型,但目前被某些东西阻止了。所以是什么阻止了开发者使用泛型?大多数受访者属于以下两个类别之一。第一,30% 的受访者表示他们遇到了当前泛型实现的限制,例如所需要的参数化方法、改进类型推断或切换类型。受访者表示,这些问题限制了泛型的潜在用例,或者认为它们导致泛型代码不必要地冗长。第二类涉及尚不支持泛型的事物 ——linter 是最常见的工具,此外还包括组织仍然使用早期的 Go 版本或依赖于尚未支持的 Linux 发行版。

12% 的受访者表示 Go 泛型学习曲线陡峭或缺乏有用的文档。除了这些最重要的问题,受访者还介绍了一系列不太常见的挑战,如下图所示:

图片

受访者使用 Go 开发什么?

两个最常见的用例仍然是构建 API/RPC 服务 (73%) 和编写 CLI (60%)。

Go 团队使用线性模型来调查受访者使用 Go 的时间与他们使用 Go 构建的东西的类型之间是否存在关系。最终发现,具有 < 1 年 Go 开发经验的受访者更有可能在该图表的下半部分构建一些东西(GUI、物联网、游戏、ML/AI 或移动应用程序),这表明他们对在这些领域使用 Go 感兴趣。但拥有 1 年 Go 开发经验后,这些开发者更少关注上述领域,这意味着他们在这些领域使用 Go 时遇到重大障碍。

图片

大多数受访者在使用 Go 开发时使用 Linux (59%) 或 macOS (52%),绝大多数部署到 Linux 系统 (93%)。在此次调查中,官方添加了一个在 WSL 上开发的选项,最后 13% 的受访者选择了该选项。

图片

受访者在编写 Go 代码时最喜爱的编辑器

可以看到,免费开源的 Visual Studio Code 是 Go 开发者编写代码的主流选择 (45%),GoLand 的比例略低 (34%)。

图片

完整报告请见:https://go.dev/blog/survey2022-q2-results

编辑:场长

评论