一、写在前面
GITHUB OCTOVERSE 是由世界上最大的代码托管平台 GITHUB 发起的开源趋势调查,旨在探索开源的新趋势,以及对于开发者和软件公司的影响。通过分析 GITHUB OCTOVERSE 2022 的调查报告,我们能够发掘出开源圈的一些趋势。另外,本篇文章不仅会为大家详细解读 GITHUB OCTOVERSE 2022 调查报告的结果,同时也会包含笔者对于报告结果的一些理解。
二、整体趋势
2-1、概览
截止到 2022 年,已经有 9400 万开发者在使用 GitHub 了,同时也有 90% 以上的公司在使用 GitHub。从这两个数字我们可以看出,GitHub 这个世界上最大的代码托管平台已经被开发者和软件公司们广泛的使用了。
当然,更重要的是,在 2022 年开发者们共计提交了 4.13 亿次开源贡献,这意味着开源生态成长至今,已经非常有规模了。
2-2、重要趋势
而在今年的报告中,有三个非常值得关注的趋势:
1、“Infrastructure as code” 成为一种大趋势。 开发者在 2022 年大量使用 Hashicorp Configuration Language (HCL)、Shell 和 Go 语言,同时,HCL 也成为了 GitHub 上增长最快的语言。这表明基础架构即代码 (IaC) 的实践越来越多地被 GitHub 上的项目(包括开源项目)采用。
HCL & Terraform 入门可以参考这个教程:developer.hashicorp.com/terraform/c…
2、大型软件科技公司正在构建大型开源社区。 2022 年 GitHub 上很多大型开源项目得到了商业支持,而这些投资也反哺了开源生态,让更多人为开源做出贡献。据统计,超过 30% 的财富 100 强公司现在拥 有开源战略办公室,而这个数字还会不断增加。
3、刚参与开源社区的贡献者们更青睐有商业支持的项目。 据统计,在首次提交开源代码的贡献者中,50% 是给有商业支持的开源项目提交代码。当然,这 50% 的贡献者大部分都是独立贡献者(IC),不是这些项目所属组织的开发人员。这说明了有商业支持的开源项目所带来的极高的品牌认知度,同时它还反映出了公司对开源的投资最终的确会反哺于项目本身。从 Flutter 到 Next.JS, 从 React 到 VS Code,公司主导的开源项目已经成为 GitHub 上开发者生态系统不可或缺的一部分。
三、开发者
在 2022 年,GitHub 上的开发者同比增长 27%,有 2050 万新开发者加入。而 GitHub 上的总贡献数,已经达到了 35 亿。这些都说明了开源生态正在蓬勃发展,吸引越来越多的开发者加入其中。
3-1、AI 正在提高代码编写效率
说到 AI 辅助编写代码,那就不得不提到今年大火的 GitHub Copilot。通过对使用 GitHub Copilot 的开发者进行调查,我们发现使用 AI 代码辅助工具的开发者能更快地完成任务,开发体验也更好,代码编写效率更是有将近 1 倍的提升。
四、地域
在使用 GitHub 的开发者当中,开发者人数排名前三的国家是美国、中国、印度,而这三个国家也确实是当今世界上软件行业发展最迅猛的三个国家。所以我们不难看出,软件行业的发展和开源是有着紧密的联系的。
PS:2022 年调查因为地图的原因不能放,所以这里放一个 2021 年的。 而对于 2022 年新增的开发者,我们可以看到印度增长非常迅猛,中国、巴西次之。如果按照这个增长幅度持续下去,预计到 2025 年印度将与美国 GitHub 的开发者人数持平。
五、开发语言
在 2022 年,开发人员使用近 500 种编程语言在 GitHub 上构建软件。 JavaScript 仍然是第一,是开源社区中最常用的语言。 由于 IaC 的突飞猛进,HCL 等语言增长速度最快。 Python 的增长率最高,达到了 22.5%。 PHP 在 2022 年的使用量有一定幅度的降低。
5-1、开发语言使用情况
看一下近几年开源社区编程语言的使用情况变化图,我们可以发现:
- JS 一直保持第一,这与 JS 学习成本相对较低、功能强大(前端后端移动端都能写)、生态完善(NPM)、中小型应用开发效率高(JS 一把梭,一周一个 MVP 版本)等特点密不可分。
- Python 随着近几年数据挖掘和机器学习的发展,如今也爬到了第二的位置。
- 老牌编程语言 JAVA 仍然是开源贡献者们所使用的主力语言,但使用率已经被 Python 挤到第三去了。
5-2、开发语言增长情况
而如果我们来看增长率的话,也能发现不少有趣的事情:
- HCL 在过去一年的使用量显著增长。这是由 Terraform 的普及和 IaC 实践的增长共同推动的。而随着自动化部署越来越被大家认可,我们发现 Shell 也出现了大幅增长。
- Rust 的增长率超过 50%,主要是因为它的安全性和可靠性。
- TS 在搭上了 JS 生态的不断繁荣的便车,也在迅猛发展,如今也有 37.8%的增长率。
- Lua 在游戏开发中大量使用,它作为一种简单的脚本语言,适用于从游戏到应用程序开发再到物联网的各种场景。
- Go 作为 Docker 和 Kubernetes 等项目开发人员的首选语言,也在稳步增长。
六、开源项目
6-1、参与贡献人数最多的开源项目
可以看到,贡献者数量最大的项目几乎都是有商业支持的项目,其中包括 microsoft/vscode、 flutter/flutter 和 vercel/next.js。而且更有趣的是,他们都和大前端领域息息相关。 还有一个例外,开源家庭自动化项目 home-assistant/core,在过去一年中取得了显著的增长。
6-2、贡献者增长最迅速的开源项目
而分析在 2022 年增长速度最快的开源项目,我们也能找到一些共同点:
- 引擎、开发套件和框架的整体贡献者同比增长最快。
- home-assistant/core 在过去一年中增长迅速,这表明开发者对家庭自动化的兴趣日益浓厚。
- microsoft/PowerToys 作为基于 Windows 的实用程序工具集,吸引了一众开发者参与到项目中。
- remix-run/remix 作为全栈开发框架,也备受开发者青睐。
七、公司
在 2022 年,大部分 GitHub 上的大型开源项目都是由公司或某个组织来领导或维护的。 而这些公司主导的开源项目集中在代码编辑器、框架和编程语言领域,它们在 GitHub 上吸引了非常多的贡献者。从 microsoft/vscode 到 tensorflow/tensorflow,这些项目大部分都上过 Octoverse 报告中的榜单。它们的成功说明了有商业支持的开源项目能够在更广泛的开源生态中产生巨大的影响。 值得注意的是,大多数来自组织外部的开发者的贡献都是提 comment、提 issue、review PR。换句话说,组织内部的开发人员仍然以比外部贡献者高得多的速度为他们公司的项目贡献代码。这意味着——
当公司让开发人员作为社区的一部分做出贡献而不是仅仅在开源许可下发布代码时,公司就会拥有最活跃的开源社区。
八、开源的下一步
开源的下一步是什么?没有人能给出确切的答案。软件技术发展至今,在商业、政府、社会发展等方面都至关重要——而开源往往处于软件技术的前沿。
举个例子,在 COVID-19 大流行的早期,就有开源组织在于 WHO 合作,规范其内部的软件开发流程,并创建了联合国中第一个开源项目办公室,用于支持全球 WHO 的工作人员使用、生产并发布开源工具,以应对 COVID-19 的挑战。
有人说开源在社会领域的最大优势之一是它可以减少重复工作,这对于减少内耗、提高效率来说至关重要。
也有人说开源还可以将全球社区聚集在一起,促进并产生更包容,更多样化的技术。
还有人说开源让那些可靠且优秀的技术解决方案在全球范围内更容易获得,有助于促进世界的公平。
……
我相信每一位参与开源的开发者都对开源的未来有着自己的理解,不过总之,还是感谢所有在今年为开源生态做出贡献的人!