2021 Go 官方调查报告重磅发布:92%的开发者对 Go 满意

Go语言精选

共 3041字,需浏览 7分钟

 · 2022-04-26

点击上方蓝色“Go语言中文网”关注,每天一起学 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% 的人在独自战斗,一个人就是一个团队。

85% 的受访者团队少于 10 人

都说程序员加班是常态,经常日夜颠倒,工作融入生活,这不,在周末有 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的文章整理而成


推荐阅读


福利

我为大家整理了一份从入门到进阶的Go学习资料礼包,包含学习建议:入门看什么,进阶看什么。关注公众号 「polarisxu」,回复 ebook 获取;还可以回复「进群」,和数万 Gopher 交流学习。

浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报