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

2021年Go开发者调查报告

时间:2023-03-11 20:32:13 科技观察

Go官方博客发布了2021年Go开发者调查报告。据称,该调查收到了11,840份回复,是该调查开展以来六年来回收问卷最多的一次。调查报告要点大多数答复与往年一致。例如,开发人员对Go的满意度仍然很高,92%的受访者表示满意,75%的受访者在工作中使用Go。今年的部分受访者来自调查组随机抽取的GoVSCode插件用户样本,因此调查的回答与以往有所不同。缺少关键库、语言特性和基础设施是使用Go的最常见障碍。(这项调查是在Go1.18发布之前进行的,泛型是报告中最多人报告的第一大缺失功能)。受访者希望优先改进调试和依赖管理。使用模块时最大的挑战涉及版本控制、使用私有存储库和多模块工作流。81%的受访者对Go项目的长期方向充满信心。Go的使用与往年的调查结果一样,Go主要在科技行业得到广泛使用。70%的受访者是软件开发人员,少数从事IT或DevOps工作。76%的受访者表示他们在工作中使用Go编程。72%的受访者表示他们使用Go开发API/RPC服务,其他主要用途是Web服务、库或框架、自动化部署和数据分析。少数开发人员还使用Go开发桌面应用程序、游戏、人工智能和移动应用程序。一些新的统计数据:大多数受访者将他们的组织描述为企业或SMB,大约四分之一的人将他们的组织描述为初创公司。咨询公司和公共机构所占比例更少。绝大多数受访者在少于10人的团队中工作。超过一半(55%)的受访者每天在工作中使用Go,而受访者在工作之外使用Go的频率较低。开发人员在使用Go时遇到的障碍受访者被要求评估Go但没有选择使用它。遇到的主要障碍是:缺乏所需的语言特性,其他编程语言的基础设施提供了更好的支持,Go生态系统缺乏所需的库,团队没有使用Go的经验,Go工具不丰富,Go性能不满足需求,Go开发人员招聘困难等。可见,语言特性的缺失和丰富生态的缺失,让很多想“入坑”的开发者望而却步。其中,“泛型”是他们最想加入的特性(提供泛型的Go1.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。最后,GoDevelopers2021调查报告的一些关键要点:本次调查的样本发生了变化,但大多数同比指标保持稳定,而且大部分都在变化。开发人员对Go的满意度仍然很高四分之三的受访者在工作中使用Go,许多人每天都使用GoGo团队将优先改进调试和依赖管理的工作流程查看完整报告:https://go.dev/blog/survey2021-results本文转自OSCHINA标题:GoDeveloper2021调查报告地址:https://www.oschina.net/news/192311/golang-survey2021-results