GitHub 2019 年度报告解读:开源生态和技术趋势

avatar
技术支持 @LeanCloud

GitHub 最近发布了 2019 年度报告。一年以来,GitHub 用户增长十分迅猛,新增了一千万用户,现在总共有超过四千万用户。在过去一年,GitHub 用户新建了四千四百多万仓库,合并了八千七十多万 pr,关闭了二十多万 issue。

参差多态的国际社区

在四千多万用户中,大约有十分之一用户是活跃用户(在公开或私有项目上发布过代码、提交过 issue、评论过 pr 和 issue 的用户)。这些活跃用户在过去一年的增长也是十分迅速,特别是亚洲、欧洲、北美。这应该是因为大多数 IT 行业的从业者在这些地区居住。

在 GitHub 的用户中,2019 年有超过二百五十多万用户为开源项目做出贡献。GitHub 上为开源项目做贡献的用户数增长也很迅速,特别是美国以外的用户,增长尤为突出。

如上所述,亚洲、欧洲、北美的活跃用户最多,增速最快。在这三者之中,亚洲尤为突出。而亚洲的活跃开发者,有 31% 是中国开发者。从不同国家和地区开源项目的使用量(克隆、分叉数)上来看,中国也是一骑绝乘。

被微软收购后,不差钱的 GitHub 推出了免费的私有仓库,全球各地的开发者对此十分欢迎,甚至包括身处南极洲的开发者。自 2019 年 1 月推出以来,美国以外的开发者创建了 80% 的免费私有仓库。亚洲地区的开发者创建了 36%,其中大部分是由印度、中国和日本的开发者所创建。

紧密联系的开源生态

今年有 35 万人为前 1000 个项目(按 star 排序)做出了 500 万以上的贡献。130 万开发者首次为开源项目做出贡献。

开发者通过软件组成了一个越来越紧密联系的社区。在库的依赖关系中这一点体现得尤为明显,一个库可能被数百万个项目依赖。

每个语言生态系统(JavaScript,Python,Ruby 等)中排名前 50 位的开源包都被数量众多的项目依赖。由于 JavaScript 社区更青睐粒度较小的包,流行的 npm 包的平均直接贡献者可能少于 40 人,但仍可能被数百万项目依赖。

每种包管理器排名前 50 的包 平均被依赖数 平均直接贡献者
Maven 167k 99
pip 78k 204
npm 3.5m 35
NuGet 94k 109
RubyGems 737k 146

被最多项目依赖的十大开源软件包中,位列前三的 lodashexpressdebug 都各自被超过四百万个项目依赖。在之前的表格中我们已经见识过 top 50 npm 包鹤立鸡群的平均被依赖数。所以,毫不意外,这十大开源软件包都源自 npm。

让我们暂时告别 JavaScript 社区,看下 Python 社区的明星项目 TensorFlow。TensorFlow 向我们展示了开源项目如何连接更大的软件社区。依赖 Python 软件包的项目的社区贡献者平均数量约为 1.9 万。TensorFlow 的社区也不例外。成千上万的人为其依赖做出了贡献,包括 numpy、pytest 等。

日新月异的技术趋势

GitHub 上的开源项目正在不断发展,今年创建的开源项目占 GitHub 上所有开源项目的 30%。

跨语言、跨平台构建应用程序和网站的工具包和框架在今年的增长很快。2018 年 12 月发布 1.0 版本的 flutter 2019 年在贡献者最多的项目中位列第三,在增长最快的开源项目中位列第二。react-native 也在贡献者最多的项目中位列第六。

在上面这个最多贡献者项目榜单中位列第一的 vscode 从 2016 年起就是这个榜单的常客。这个微软开源的代码编辑器,既轻量又强大,赢得了使用各种语言的众多开发者的欢心。2019 年新登上最多共享者项目排行榜前十的项目,除了之前提到过的 flutter,还有 first-contributionshome-assistant 两个项目。first-contributions 是供 Git 初学者练手的项目,而 home-assistant 则是基于 Python 开发的开源智能家居方案。

最受欢迎语言 top 10 排行榜中,年度使用人数最多的编程语言仍然是 JavaScript,连续 6 年稳坐第一!另外,借着数据科学和人工智能的东风,Python 首次打败 Java,成为 GitHub 上使用人数第二多的编程语言。实际上,不仅仅是 Python,「深度学习」、「自然语言处理」、「机器学习」等主题的项目正变得越来越流行。从 2016 年到 2019 年,Jupyter Notebook 的使用量同比增长超过 100%。 NTLK 之类降低 NLP 入门门槛的工具包的使用量增长趋势也与此类似。此外,C# 和 Shell 在过去一年增长迅速。

之前提到 flutter 2019 年在贡献者最多的项目中位列第三,在增长最快的开源项目中位列第二,所以 Dart 成为增长最快的语言也就不足为奇了。Rust、Kotlin、TypeScript 等注重类型安全和互操作性的静态类型语言发展势头也十分喜人。

结语

2019 年,越来越多的人成为开发者,开发者社区越来越国际化,开源软件的生态越来越繁荣,古老的语言和崭新的框架交相辉映。让我们以 GitHub 2019 年度报告的最后一句话结束本文:

你正创建代码、社区、工具、技术,它们将是未来若干年驱动我们世界前行的动力。

本文图片和数据来自 GitHub 2019 年度报告,解读仅供参考。