2021 Go 官方调查报告重磅发布:92%的开发者对 Go 满意
大家好,近日,Go 官方重磅发布了 2021 年度 Go 开发者调查报告。
本次调查了 11840 名开发者,这是 6 年以来,参与该项调查人数最多的一次。本次调查对 Go 开发者画像、技术工具、开发者评价等方面进行了全面的调查,带你深入了解 Go 语言现状。
Go 语言中文网带大家一起看看这次报告的主要内容。
首先是几个特别值得强调的点:
开发者对 Go 的满意度普遍很高(一如既往的满意),92% 的开发者对 Go 感到满意。70% 的受访者在工作中使用 Go,81% 的受访者对 Go 的未来前景充满信心; 缺少关键库、语言功能和基础设施是 Go 开发者普遍反馈的功能缺陷。受访者希望优先考虑对调试和依赖项管理进行改进; 使用模块(Module)时面临的最大挑战是关于版本控制、使用私有存储库和多模块工作流等方面。(此调查是在 Go 1.18 之前进行的,Go 1.18 已进行了大量的改进,在语言层面增加了泛型、增加了 Fuzzing、工作区以及性能上的改进)
01 Go 开发者:一个人也可以是一个团队
作为一门编程语言,使用的人群大多数都是软件开发人员(70%),只有少数是从事 IT 或 DevOps 工作。虽然近年来掀起了一阵“转码热“,许多业余人士也开始学习一些编程语言,丰富业余生活。但大多数的人还是专业程序员,76% 的受访者表示他们在工作中使用 Go 语言进行项目研发,这一数据与 2020 年持平。
从受访数据来看,绝大多数的受访者受聘于企业或者中小型企业、约四分之一用户供职于初创企业,像咨询公司、公共机构的占比非常低。
另外,虽然程序员的工作常给人量大、活多、掉头发的印象,但大多数开发团队人数都不算多,大部分都少于10人,甚至还有 8% 的人在独自战斗,一个人就是一个团队。
都说程序员加班是常态,经常日夜颠倒,工作融入生活,这不,在周末有 31% 的受访者在使用Go语言(可能是加班,也可能是兴趣爱好)。有 55% 的人是在工作中使用 Go 语言。
近两年,除了遍地的程序员,开发圈里“程序媛”也多了起来。但 Go 开发者中女性比例仍然只有 2%,和去年差不多。
作为一个“内卷”十分激烈的行业,许多开发者都会通过提高自身技能来增强竞争力,技多不压身,学习几种语言,Go 开发则也不例外。51% 的开发者在工作中学习新的语言,但也有一大部分选择在校园外或者工作之余悄悄“内卷”(45%)。
那么具体怎么学呢?大多数的开发者都是通过自学的方式,很少有抱团学习,因为最重要的还是独立思考的能力。当你想要学习一种新技能,上网一搜,方法五花八门,各种教学视频眼花缭乱。那么哪些才是最有用的方法呢?64% 的Go开发者认为通过阅读参考文档来学习新的编程语言是最有用的,其次是写教程、看源代码或者通过现场教学(线上或者线下)。
02 构建 API/PRC 服务仍然占大头
调查发现,迄今为止 Go 最常见的用途仍然是构建 API/PRC 服务(49%),令人惊讶的是,数据处理成为了第二常见的用途。
Go 的性能好,开发效率高,从发布 1.0 版本以来备受众多开发者关注并得到广泛使用。很多公司特别是云计算公司开始用 Go 重构他们的基础架构,很多都是直接采用 Go 进行了开发,比如很火的 Docker 就是采用Go开发的。75% 的受访者,在对 Go 进行评估后使用了 Go。
但是没有哪一种语言是完美的,比如认为 Go 有如下缺点:
Go 缺少一些所需的特性。 其他语言能够更好地支持现有的工具和设施。 Go生态缺乏需要的库。
这三点是有些开发者没有选择 Go 来开发项目的主要原因。
那么,没有选择 Go 时他们使用了哪种语言呢?
Rust、Python、Java 是最常见的选择。Rust 和 Go 有互补的功能集,所以当 Go 不能满足项目的功能需求时,Rust 是一个不错的选择。使用 Java 最常见的原因是因为 Go 缺少一些特性,但这个问题可能会通过在 1.18 版本中引入泛型得到一定的解决。
03 开发者评价:Go在团队中表现良好
Go 似乎一直以来都赢得了大部分使用过它的人的喜爱,92%的 Go 开发者表示,在过去的一年里,他们对 Go 感到满意。
社区的态度逐年略有波动。但有 91% 的开发者认为“Go 在团队中表现良好”,该数据达到了近三年新高。
81% 的受访者对 Go 未来的前景很有信心。但是愿意为 Go 项目做贡献的开发者由去年的 64% 下降至 61%。
今年采取了一种特殊的提问方式来探究改善的优先级:”如果你有 10 个 GopherCoins 可以用来改善 Go,你会怎样分配你的硬币?”根据受访者的投票,依赖管理和诊断错误两个领域需要更多的改善。
04 Go开发者偏爱 Linux 系统和 VS Code
Linux 仍然是最受 Go 开发者欢迎的系统(63%),其次是 macOS(55%)系统。不过在 Linux 上开发的开发者似乎在逐年减少,而在 Windows 上开发的人数较去年有所增加。
另外,91% 的Go开发者更喜欢使用 VS Code 作为编辑器,当然,不仅仅只有 Go 开发者偏爱VS Code,根据 Stack Overflow 开发者报告的数据,Visual Studio Code 显然已成为开发者的首选 IDE,有 71.06% 的开发者使用。
超过 90% 的开发者会将 Go 部署到 Linux,另外值得注意的是,虽然在 Windows 系统用 Go 开发的没有在 macOS 系统上多,但是将 Go 部署到Windows系统(18%)的人数超过部署到 macOS 系统(15%)。
05 云服务中的 Go
Go 在设计时考虑了现代分布式计算,Go 官方希望继续改善开发人员使用 Go 构建云服务的体验。所以,今年 Go 官方将 Go 程序部署到全球三大云提供商(Amazon Web Services,Google Cloud Platform 和 Microsoft Azure)的比例保持不变,并且对自有或公司拥有的服务器的本地部署继续减少。
06 总结
重申一些关键要点:
对 Go 的满意度仍然很高! 四分之三的受访者在工作中使用 Go,许多人每天都在使用 Go,因此帮助你完成工作是重中之重。 Go Team 将优先改进调试和依赖管理工作流程。 Go Team 将继续努力使 Go 成为各种 Gophers 的包容性社区。 了解开发人员的经验和挑战有助于衡量 Go Team 的进步并指导 Go 的未来。
再次感谢所有为本次调查做出贡献的人 —— 如果没有你们将无法完成。希望明年再见!
完整的报告结果见:https://go.dev/blog/survey2021-results
本文结合官方报告和 CSDNnews (https://mp.weixin.qq.com/s/JUt0WFoheic3GRIbdSwypQ)的文章整理而成
推荐阅读