0

0

《2021 年 Go 官方开发者调查报告》

Golang菜鸟

Golang菜鸟

发布时间:2023-08-07 16:22:41

|

1089人浏览过

|

来源于Golang菜鸟

转载

每年 Go 官方都会组织进行一次 Go 开发者的调查,上年也不除外。不过调查完,收集了资料后就不见人影了...不然是社区和某时间的朋友们都会问我在哪里可以看到。

这不,最近官方终于发布了《Go Developer Survey 2021 Results[1]》,我直接翻译了(有删减,仅展示重点内容),大家可以看看,了解下 Go 的社区行情发展。

Go 开发者调查结果

亮点

  • 大多数答复与往年一致。例如,对 Go 的满意度仍然很高,达到 92%,75% 的受访者在工作中使用 Go。
  • 今年,我们使用 Go VSCode 插件对一些参与者进行了随机抽样,这导致了对调查作出回应的人发生了一些变化。
  • 缺少关键库、语言功能和基础设施是使用 Go 的最常见障碍。(注:这项调查是在 Go1.18 发布之前进行的,其中泛型是报告中最缺的第一大功能)
  • 受访者希望优先改善调试和依赖性管理。
  • 在使用模块时,最大的挑战是版本管理、使用私有仓库和多模块工作流程。(注意:这项调查是在Go 1.18之前进行的,Go 1.18引入了工作空间,解决了许多这些问题)。
  • 81% 的受访者对 Go 项目的长期发展方向有信心。

我们听了谁的声音?

我们的人口统计数据逐年保持稳定(见 2020 年的结果)。与往年一致,Go主要用于科技行业。70% 的受访者是软件开发人员,少数是 IT 或 DevOps,76% 的受访者表示他们在工作中用 Go 编程。

《2021 年 Go 官方开发者调查报告》
《2021 年 Go 官方开发者调查报告》
《2021 年 Go 官方开发者调查报告》

2021 年的一些新人口统计数据:

  • 大多数受访者将他们的组织描述为企业或中小型企业,约四分之一的人将他们的组织描述为初创企业。咨询公司和公共机构的情况要少得多。
  • 绝大多数受访者在不到 10 人的团队中工作。
  • 超过一半(55%)的受访者每天在工作中使用 Go。受访者在工作之外使用 Go 的频率较低。
《2021 年 Go 官方开发者调查报告》
《2021 年 Go 官方开发者调查报告》
《2021 年 Go 官方开发者调查报告》

Go 应用面临的挑战

我们问受访者在过去一年中是否评估过使用其他语言来替代 Go。43% 的受访者表示,他们曾评估过切换到 Go,或者在之前没有既定语言的情况下采用 Go。

这些评估中的 80% 主要是出于商业原因。

《2021 年 Go 官方开发者调查报告》

我们预计 Go 最常见的用例将是评估 Go 的人最常见的预期用途。到目前为止,API/RPC 服务是最常见的用途,但令人惊讶的是,数据处理是第二常见的预期用例。

《2021 年 Go 官方开发者调查报告》

在那些评估了 Go 的受访者中,有 75% 最终使用了Go。(当然,由于几乎所有的调查对象都报告说在使用 Go,我们很可能没有听到那些评估过 Go 但决定不使用它的开发者的声音)。

《2021 年 Go 官方开发者调查报告》

对于那些评估了 Go 但没有使用 Go 的人,我们接着问他们有哪些挑战阻碍了他们使用 Go,其中哪个是主要障碍。

《2021 年 Go 官方开发者调查报告》

我们从这些结果中得到的情况支持了之前的发现,即缺少功能和缺乏生态系统/库支持是采用Go的最重要的技术障碍。

我们询问了更多关于受访者缺少哪些功能或库的细节,发现泛型是最常见的关键性缺失功能 -- 我们希望在 Go1.18 引入泛型之后,这将成为一个不那么重要的障碍。接下来最常见的缺失功能是与 Go 的类型系统有关的。

我们希望在做出更多改变之前,看看引入泛型会如何影响或解决围绕 Go 类型系统的潜在需求。

目前,我们将收集更多关于这些需求背景的信息,并可能在未来探索不同的方式来满足这些需求,例如通过工具、库或对类型系统的修改。

至于缺失的库,对于增加什么样的库可以解开最大比例的想采用Go的人的障碍,并没有明确的共识。这需要进一步的探索。

那么,当受访者不选择 Go 时,他们用什么来代替呢?

《2021 年 Go 官方开发者调查报告》

Rust、Python 和 Java 是最常见的选择。

Rust 和 Go 有互补的功能集,所以当 Go 不能满足项目的功能需求时,Rust 可能是一个不错的选择。

使用 Python 的主要原因是缺少库和现有的基础设施支持,所以 Python 的大型软件包生态系统可能会使其难以转换为 Go。

同样地,使用 Java 的最常见的原因是 Go 的功能缺失,这可能会因为 1.18 版本中引入泛型而得到缓解。

Go 满意度和优先级

让我们看看 Go 在哪些方面做得好,哪些方面可以改进。

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

《2021 年 Go 官方开发者调查报告》

今年,我们引入了一个新的问题,以探索在特定领域中确定工作优先次序的其他方法。

问题:"假设你有 10 个 GopherCoins 可以用来改善围棋工作的以下方面。你会如何分配你的硬币?"

突出的两个领域是依赖性管理(使用模块)和诊断错误,这些领域我们将在 2022 年投入资源。

《2021 年 Go 官方开发者调查报告》

在 Go 依赖管理上,最常见的挑战是:

  • 在多个模块之间工作(19% 的受访者)。
  • 是关于版本的评论(包括对承诺稳定的 V1 版 API 的恐惧)。

与版本有关,9% 的答复讨论了版本管理或更新依赖关系。排在前五位的是关于私有仓库的挑战(包括对 GitLab 的认证)和记住不同的 go mod 命令以及理解它们的错误信息。

开发者工具和实践

与往年一样,绝大部分调查对象表示在 Linux(63%)和 macOS(55%)系统上使用 Go。随着时间的推移,主要在 Linux 上开发的受访者的比例似乎略有下降的趋势。

《2021 年 Go 官方开发者调查报告》

在使用 VSCode 插件进行调查的受访者中,有 91% 的受访者在使用 Go 时更喜欢使用 VSCode。

《2021 年 Go 官方开发者调查报告》

目标(部署)平台

超过 90% 的受访者以 Linux 为目标! 尽管在 macOS 上开发的受访者比 Windows多,但他们更经常部署到 Windows 而不是 macOS。

《2021 年 Go 官方开发者调查报告》

总结

整体回顾我们 2021 年的开发者调查结果 重申一下,一些关键的收获。

  • 我们的大多数同比指标保持稳定,大多数变化是由于我们的样本变化。
  • 对 Go 的满意程度仍然很高!
  • 四分之三的受访者在工作中使用 Go,许多人每天都在使用Go,所以帮助你完成工作是首要任务。
  • 我们将优先考虑对调试和依赖性管理工作流程的改进。
  • 我们将继续努力,使 Go 成为各种 Gophers 的包容性社区。

简单来讲,就是欣欣向荣,大部分人对 Go 都比较满意。

最大矛盾点是泛型和依赖管理。泛型已在 Go1.18 已经释出,依赖管理持续在改进,也会加大对调试工具的优化。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

0

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

0

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

0

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

1

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

19

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

16

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

17

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

2

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 4.3万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号