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

参差多态的国际社区

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

GitHub 2019 年度报告解读:开源生态和技术趋势-青梅煮码

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

GitHub 2019 年度报告解读:开源生态和技术趋势-青梅煮码

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

GitHub 2019 年度报告解读:开源生态和技术趋势-青梅煮码

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

GitHub 2019 年度报告解读:开源生态和技术趋势-青梅煮码

紧密联系的开源生态

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

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

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

每种包管理器排名前 50 的包平均被依赖数平均直接贡献者Maven167k99pip78k204npm3.5m35NuGet94k109RubyGems737k146

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

GitHub 2019 年度报告解读:开源生态和技术趋势-青梅煮码

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

GitHub 2019 年度报告解读:开源生态和技术趋势-青梅煮码

日新月异的技术趋势

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

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

GitHub 2019 年度报告解读:开源生态和技术趋势-青梅煮码

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

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

GitHub 2019 年度报告解读:开源生态和技术趋势-青梅煮码

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

GitHub 2019 年度报告解读:开源生态和技术趋势-青梅煮码

结语

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

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