当前位置: 首页 > 科技观察

Q22022Go开发者调查报告

时间:2023-03-19 20:13:18 科技观察

Go博客发布了2022年Q2Go开发者调查报告。据报道,共有5,752名开发者参与了本次调查,并分享了他们在使用Go1.18新功能方面的经验和感悟.主要发现是仿制药已被迅速采用。大多数受访者都知道Go1.18正式支持泛型,大约四分之一的受访者表示他们已经开始在Go代码中使用泛型。但是,开发人员在最初的泛型实现中遇到了一些限制。模糊测试对于大多数Go开发人员来说是新的。与泛型相比,受访者对Go内置模糊测试的了解要少得多,而且他们更不确定为什么或何时会考虑模糊测试。第三方依赖项是最重要的安全问题。避免与已知漏洞的依赖关系是受访者面临的与安全相关的首要挑战。更广泛地说,安全工作通常是没有计划和没有回报的,这意味着工具需要开发人员的时间和注意力。官方在发布新功能时可以做得更好。与通过Go博客找到调查的人相比,随机抽样的参与者不太可能知道最近发布的Go工具。这表明官方应该在博客文章之外寻找机会来传达Go生态系统的变化,或者扩大他们的影响力以更广泛地分享这些文章。错误处理(errorhandling)仍然是一个挑战。随着泛型的发布,受访者在使用Go时面临的最大挑战转移到了错误处理上。不过总体而言,开发人员对Go的满意度仍然很高,受访者表示他们使用Go的方式没有明显变化。受访者对Go泛型的认识绝大多数受访者(86%)都知道泛型是作为Go1.18版本的一部分发布的。官员们表示,这一比例远高于他们的预期。此外,大约四分之一的受访者已经开始在Go代码中使用泛型(26%),其中14%表示他们已经在生产或发布的代码中使用了泛型。大多数受访者(54%)不反对使用仿制药,但目前不需要。另有8%的人表示他们想在Go中使用泛型,但目前被某些东西阻止了。那么是什么阻止了开发人员使用泛型呢?大多数受访者属于两类之一。首先,30%的受访者表示他们遇到了当前泛型实现的局限性,例如需要参数化方法、改进类型推断或切换类型。受访者表示,这些问题限制了泛型的潜在用例,或者认为它们使泛型代码不必要地冗长。第二类涉及尚不支持泛型的东西——linters是最常用的工具,但也包括仍在使用早期Go版本或依赖尚不支持它们的Linux发行版的组织。12%的受访者表示Go泛型学习曲线陡峭或缺乏有用的文档。除了这些热门问题,受访者还描述了一系列不太常见的挑战,如下图所示:受访者用Go开发了什么?两个最常见的用例仍然是构建API/RPC服务(73%)和编写CLI(60%)。Go团队使用线性模型来调查受访者使用Go的时间长短与他们使用Go构建的事物类型之间是否存在关系。最终发现,具有<1年Go开发经验的受访者更有可能在图表的下半部分构建某些东西(GUI、IoT、游戏、ML/AI或移动应用程序),这表明Domain对使用Go感兴趣。但是在拥有了1年的Go开发经验之后,这些开发者对上述方面的关注度降低了,这意味着他们在这些方面使用Go时遇到了很大的障碍。大多数受访者在使用Go进行开发时使用Linux(59%)或macOS(52%),并且绝大多数部署到Linux系统(93%)。在本次调查中,官方增加了在WSL上开发的选项,有13%的受访者选择了这一选项。受访者在编写Go代码时最喜欢的编辑器可见,免费开源的VisualStudioCode是Go开发者编写代码的主要选择(45%),GoLand略低(34%)。完整报告。本文转自OSCHINA文章标题:2022年第二季度Go开发者调查报告本文地址:https://www.oschina.net/news/210003/go-survey2022-q2-results