性能文章>Go 开发者 2021 调查报告>

Go 开发者 2021 调查报告原创

https://a.perfma.net/img/3110416
2年前
229711

Go 官方博客公布了 2021 年面向 Go 开发者的调查报告。据称此次调查收到了 11,840 份回复,问卷回收数量是调查发起 6 年来最多的一次。

 

调查报告亮点

  • 大多数回复与往年一致。例如,开发者对 Go 的满意度仍然很高,92% 受访者表示满意,75% 的受访者在工作中使用 Go。
  • 今年的部分受访者来自于调查团队对 Go VS Code 插件使用者的随机抽样,因此调查的回复跟以往相比也有所不一样。
  • 缺少关键库、语言特性和基础设施是使用 Go 最常见的障碍。(此调查是在 Go 1.18 发布之前进行的,泛型是报告中最多人反馈的第一大缺失特性)。
  • 受访者希望优先考虑对调试和依赖管理的改进。
  • 使用模块时的最大挑战涉及版本控制、使用私有仓库和多模块工作流。
  • 81% 的受访者对 Go 项目的长期发展方向充满信心。

 

Go 使用情况

和前几年的调查结果一样,Go 主要在科技行业被广泛使用。70% 的受访者是软件开发者,少数从事 IT 或 DevOps 工作。76% 的受访者表示他们在工作中使用 Go 进行编程。72% 的受访者表示他们使用 Go 开发 API/RPC 服务,其他的主要用途是 Web 服务、库或框架、自动化部署和数据分析等。少数开发者还使用 Go 开发桌面应用、游戏、AI 和移动 APP。

B2CE88C1-EE28-4063-9F80-DB331054BB56.png

 

D1B05F25-C66F-43CA-AFE1-EB37831296CB.png

23467A98-6E62-4DA5-AC6D-AB10EA2DD41D.png

一些新的统计结果:

  • 大多数受访者将他们的组织描述为企业或中小型企业,大约四分之一的受访者将他们的组织描述为初创公司。咨询公司和公共机构的占比更少。
  • 绝大多数受访者在少于 10 人的团队中工作。
  • 超过一半 (55%) 的受访者每天在工作中使用 Go,受访者在工作之外使用 Go 的频率较低。

B22CCF9A-8F3E-4F21-88FD-BD8BEC778D5B.png

开发者使用 Go 遇到的阻碍

受访者被问及曾评估过 Go 但最终没有选择使用它,其中主要遇到的阻碍包括:缺少所需的语言特性其他的编程语言对现有的工具和基础设施提供了更好的支持Go 生态缺少所需的库、团队没有使用 Go 的经验、Go 工具不过丰富、Go 性能未能满足需求、招聘 Go 开发者困难……等。

AC617F84-F581-498A-BAE7-D8FAEC68226E.png

由此可见,语言特性的缺失和生态不够丰富劝退了不少本想“入坑”的开发者。其中「泛型」是他们最希望添加的特性(调查进行的时候尚未发布提供了泛型的 Go 1.18)。除了泛型,开发者对于类型系统相关的特性也具有十分强烈的需求你。Go 团队表示,他们将收集更多关于这些需求的背景信息,并可能在未来探索不同的方式来满足这些需求,例如通过工具、库或对类型系统的修改。

那么这些相中了 Go,但最后又不采用它的受访者选了什么语言?下面的图表给出了答案:

0F0EA998-F569-4185-8D19-7429BC7E6090.png

Rust、Python 和 Java 是最常见的选择。对此 Go 团队认为,Rust 和 Go 有互补的特性,所以当 Go 不能满足项目的需求时,Rust 会是一个不错的选择。使用 Python 的主要原因是 Go 缺少库和现有的基础设施支持,因此 Python 的大型包生态系统可能会导致他们难以切换到 Go。同样,使用 Java 的常见原因是 Go 缺少一些功能,不过这应该会通过在 1.18 版本中引入泛型而得到缓解。

 

开发者对 Go 的满意度

跟去年一样,92% 的受访者表示他们在过去一年中对使用 Go 感到非常满意或比较满意。

519D104A-8813-453F-A025-AC5B4758431C.png

F4ABF8EB-AEA1-4BC6-9B81-0C20BF00D04E.png

此外,越来越多的开发者表示,Go 对于他们公司的成功提供了极大的帮助。

ABFD65C1-DA4E-48C7-8CFF-159053BBF1B1.png

开发者对 Go 的诉求

依赖管理和错误处理是 Go 开发者需求最大的两项功能。

02A725C8-ADF4-4ED5-B3D9-04A7BAB23F02.png

开发者工具和实践

与往年一样,绝大多数受访者表示在 Linux (63%) 和 macOS (55%) 系统上使用 Go。不过随着时间的推移,主力使用 Linux 开发的 Go 受访者比例似乎略有下降。

C716C95C-5069-49DC-9653-CCDC67A8A7BD.png

目标平台方面,超过 90% 的受访者选择了 Linux。尽管在 macOS 上开发的受访者多于 Windows,但他们大多数选择部署到 Windows 而不是 macOS。

3F5F696F-27F0-4D98-AC35-DEB4492BEEC3.png

最后

Go 开发者 2021 调查报告的部分关键要点:

  • 此次调查的样本有所变化,但大部分同比指标保持稳定,大部分变化。
  • 开发者对 Go 的满意度仍然很高
  • 四分之三的受访者在工作中使用 Go,许多人每天都在使用 Go
  • Go 团队将优先改进调试和依赖管理的工作流程

 

点赞收藏
堆堆

【HeapDump性能社区官方小编】各位堆友们,+微信号perfMa,可以联系上堆堆哦~

请先登录,查看1条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步
1
1
https://a.perfma.net/img/3110416
堆堆

徽章

【HeapDump性能社区官方小编】各位堆友们,+微信号perfMa,可以联系上堆堆哦~