2021年面向 Go 开发者的调查

调查报告亮点

  • 大多数回复与往年一致。例如,开发者对 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。

一些新的统计结果:

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

开发者使用 Go 遇到的阻碍

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

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

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

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

开发者对 Go 的满意度

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

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

开发者对 Go 的诉求

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

开发者工具和实践

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

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

最后

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

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

完整报告查看:https://go.dev/blog/survey2021-results

感谢支持199IT
我们致力为中国互联网研究和咨询及IT行业数据专业人员和决策者提供一个数据共享平台。

要继续访问我们的网站,只需关闭您的广告拦截器并刷新页面。
滚动到顶部