2022 年第二季度 Go 开发者调查报告
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%)。
完整报告。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Cilium 母公司融资 4000 万美元,微软、Grafana 参与投资
Isovalent 成立于 2017 年,由 Dan Wendlandt 和 Thomas Graf 共同创立,其总部设在库比蒂诺(美国)和苏黎世(瑞士),其客户包括 Adobe、Google、亚马逊、宜家等。 Isovalent 这个名字可能有些人不太熟悉,但说起 Cilium 和 eBPF,圈子里的人则不可能不知道它们,Isovalent 作为这两大开源技术方案背后的领先厂商近日宣布已经完成了 4000 万美元的 B 轮融资。 此次融资由 Thomvest Ventures 领头,M12(微软的风险基金)和 Grafana Labs 参与了跟投,他们与 Google 和思科一起成为公司战略投资者。 eBPF 是由 Isovalent 和 Meta 共同维护的一个强大、但却很复杂的 Linux 内核功能。eBPF 使开发者能够在 Linux 内核中建立高效和可扩展的网络、安全和负载平衡,也允许开发者在连接和安全层中注入高效的可观察性。eBPF 能够实现使用传统网络和安全技术或传统用户空间代理无法实现的目标,而且 eBPF 在 Linux 层运行,不受底层硬件或管理程序的约束。 Cil...
- 下一篇
中秋第一天,我写了一篇SSL证书过期监控最佳实践
先祝看到的同学中秋快乐,身体健康,在身体健康的基础上尽量暴富。 进入正题,现在大部分网站都默认支持 HTTPS,我们申请的证书一般是3个月或者1年,很容易随着时间的流逝SSL证书过期了我们却没有第一时间发现,或者在过期之前没有及时更新证书。 今天这篇文章介绍如果使用 hertzbeat 监控系统来检测我们网站的SSL证书有效期,当证书过期时或证书快过期前几天,给我们发告警消息。 HertzBeat是什么 HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时监控系统。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 官网: https://hertzbeat.com | https://tancloud.cn github: https://github.com/dromara/hertzbeat gitee: https://gitee.com/dromara/hertzbeat 安装 HertzBeat 1.如果不想安装可以直接使用云服务 TanCloud探云 console.tancloud.cn ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块