Github公布2019软件业报告,看看中国开源软件有何特点

本次使用 2019 年全年 GitHub 日志进行统计,总日志条数约 5.46 亿条,相较 2018 年的 4.21 亿条增长约 29.7%。在上述开发者活跃度与项目活跃度的定义下,统计得到 2019 年总活跃项目数量约 512W 个,相较 2018 年的约 313W 增长约 63.6%,2019 年总活跃开发者数量约 360W,相较 2018 年的约 303W 增长约 18.8%。

概述

对于这 512W 个项目的活跃度分布,如图1所示;这 512W 个项目的活跃开发者人数分布,如图2所示。对开发者活跃度与项目活跃度的定义参见附录部分的详细说明。

Github公布2019软件业报告,看看中国开源软件有何特点

图1: 整体项目活跃度分布


Github公布2019软件业报告,看看中国开源软件有何特点

图2: 活跃开发者人数分布


上述两张图中,我们使用了对数坐标,事实上在所有仓库中,仅有 1399 个项目的活跃度超过了 1000,占总项目数量不足万分之三;而参与开发者数量超过 1000 人的项目仅有 333 个,可谓万里挑一。

世界 Top 10 项目

根据上述给出的项目活跃度定义,我们对 2019 年全年活跃项目进行了活跃度统计与排名,这里给出世界活跃度 Top 10 项目的列表:

从图中看到,虽然国产开源在不断提高(后述),但是放眼全球,核心技术与影响力仍然是微软与谷歌。

Github公布2019软件业报告,看看中国开源软件有何特点

其中996.ICU 作为一个现象级开源项目,大家并不陌生,他并不是一个真正的项目。2019 年 3 月 到 4 月,中国程序员为抗议 996 工作制,在GitHub发布了一个名为 996.ICU 的项目,该项目短时间内获得超过 20 万颗星星,成为最耀眼的明星项目。

“996.ICU”是每天早 9 点到岗,一直工作到晚上 9 点,每周工作 6 天。

然后直接进入重症加强护理病房(Intensive Care Unit)

而活跃度最高的项目则是来自微软的跨平台代码编辑器Microsoft/vscode;此外微软使用开源的方式来建设其 Azure 云平台的项目MicrosoftDocs/azure-docs排名第三,显然微软在开源上的努力获得了程序员的认可。

在这个TOP10排名中,涉及了三个来自谷歌的项目,分别是:前端跨平台开发框架Flutter、容器编排系统Kubernetes以及深度学习框架TensorFlow,这也进一步说明谷歌在开源上的努力和影响力获得业内的认可。

中国 Top 20 项目分析

我们对所有排名的项目,筛选出了中国 Top 20 的项目,列表如下:

Github公布2019软件业报告,看看中国开源软件有何特点

从Top 20列表信息中,我们可以看出,996icu/996.ICU的综合活跃度数值远远高于其他项目,数值上超过其他项目一个数量级。该项目中数值最高的指标为open issue,同样超出其他项目一个数量级,达到了 22080,最低的指标为review comment,只有 144。

列表中两个比较有趣的项目是 selfteaching/selfteaching-python-camp 和 Advanced-Frontend/Daily-Interview-Question,这两个项目的活跃排名分别是第4 和第 13,分别对应了教育和面试求职两个领域。这侧面反映出大众对这两个领域的需求和关注度非常高。

另一个非常注目的项目是 pingcap/tidb,该项目的review comment是 20 个项目中最高的,达到惊人的 14913,相对比之下,该项属性下排名第二的 PaddlePaddle/Paddle 只有它的不到 60%,而 issue comment 仅次于 996icu/996.ICU,open PR 仅次于selfteaching/selfteaching-python-camp与 PaddlePaddle/Paddle,分别排名对应属性的第二与第三位。而其 608 的开发者参与数量,与其他前端项目相较甚远,但却有着如此高的活跃度,也可以看出其社区的硬核程度,之后我们会对该项目做进一步的分析。

从这个列表中我们还发现,在中国开源成绩比较突出的两家公司是百度和阿里。百度的深度学习平台PaddlePaddle占据了两个项目,分别是核心框架Paddle和模型库Models;此外开放自动驾驶平台Apollo也榜上有名。另外,由百度贡献的数据可视化项目ECharts在2018年进入Apache孵化器,此次榜单中ECharts排名11。

咱们再来看看阿里,阿里“服务于企业级产品设计体系” 的Ant-Design,是蚂蚁金服采用 React 封装的一套组件库,在中国范围内属最活跃的开源项目,排名第二。上榜的基于Java的RPC框架Dubbo,也在今年成为Apache 顶级项目。另外上榜的阿里项目还包含动态服务发现Nacos。

在中国的Top 20列表中,我们发现前端项目几乎占据了一半,包括阿里的Ant-Design组件库,由饿了么(已被阿里收购)前端团队开源的 Vue UI 组件库Element,由有赞基于Vue构建的移动UI组件库Vant等等。这说明在国内,前端群体在社区更为活跃;另外前端代码一般也不太涉密,因此公司在心态上更开放一些。

不过这其中也有一点需要引起注意,上榜的前端项目组件库居多,但是缺少核心项目。例如,在这方面,谷歌推出了自己的Angular.js框架,脸书Facebook推出自己的React.js框架来构建前端UI,但是基本上国内的腾讯、百度、阿里等都使用第三方Vue框架来开发,换句话说,BAT缺少自己的“芯片”。

开发语言分析

我们分别对世界项目活跃度 Top 1000 的项目、世界项目参与人数 Top 1000 的项目和中国开源项目统计了不同开发语言的项目数量以及使用不同开发语言进行 PushEvent 操作的开发者的数量,二者相乘估计使用不同开发语言的开发者的数量。(如图9和图10所示),可以发现 JavaScript 使用最多。

Github公布2019软件业报告,看看中国开源软件有何特点

世界项目活跃度 Top 1000 项目开发语言统计


Github公布2019软件业报告,看看中国开源软件有何特点

世界项目参与人数Top 1000项目开发语言统计


原因我们分析如下:

  • JavaScript 是一门直接被嵌入到 HTML 中的脚本语言,是一门可以被 Web 浏览器理解的语言。它无需编译、在浏览器环境可以直接运行的特性,让 JavaScript 项目在活跃度的提升上占据了优势。
  • 谷歌开发的 Angular 和 Facebook 开发的 React,另外还有 Vue,这些主流前端框架都是 JavaScript 生态圈中的一部分。
  • 这几年随着行业的发展,JavaScript 变得几乎”无所不能“,现在基本所有的主流互联网应用,其前端都有大量的 JavaScript 代码。比如我们日常使用的邮件、社交工具等等。

此外,全球项目活跃度 Top1000 和全球项目参与人数 Top 1000 的项目中,Python的使用居于第二位,分析可能的原因为:

  • Python 相较于其他主流编程语言具有更好的可读性,简单易学、易于维护。
  • Python 应用范围广,它自带的各种模块加上丰富的第三方模块,免去了很多“重复造轮子”的工作,可以更快地实现多种功能。
  • 人工智能的浪潮进一步推动了 Python 的发展,很多人工智能任务以及大数据分析都会优先使用 Python 实现。

在中国开发者社区中,我们发现除了JavaScript外,Java和Go的活跃度也很高,分别排在第二、第三,如图11所示。

Github公布2019软件业报告,看看中国开源软件有何特点

中国开源项目开发语言统计


我们认为:在服务器和移动端开发上,Java 还没有真正意义上的对手,可以预见Java 依旧是企业软件、大数据、电商...最核心的技术栈。Go 是谷歌开发的新一代编程语言,在过去的几年里取得了很大的成功。现代的云端、网络和 DevOps 软件的很大一部分都是用 Go 编写的,例如 Docker、Kubernetes、Terraform、etcd、Istio 等项目。许多公司也将它用于通用场景下的开发工作,Go语言中国社区也极具活力。

对比全球的开发语言排行榜,我们发现中国开源项目中Python的使用与Java、Go、C++相比较少。另外还值得关注的是,Ruby和PowerShell在中国社区受重视的程度还不够。

技术公司开源项目一览

其实各大开源项目的背后,基本都有科技公司的支持,我们给出了一个科技公司维护的 GitHub 组织和项目列表,并根据该列表,计算出了科技公司所维护的开源项目在 2019 年的活跃情况与开发者参与情况,结果如下表所示:

Github公布2019软件业报告,看看中国开源软件有何特点


在国内企业的开源数据中,我们可以看到阿里的数据几乎在所有类别里都名列第一,有时甚至是其它公司之和,并且在社区化 / 开放等方面也做得不错。但放到全球角度,出自阿里的知名度相对较高的项目,还是Apache Dubbo,以及在2019年收购而来的大数据流处理框架Flink。2019年9月在杭州的云栖大会上,阿里宣布贾扬清正式担任阿里巴巴开源技术委员会负责人,开源将明确升级为阿里技术战略之一。

AI 是百度开源最鲜明的竞争力,比如PaddlePaddle和自动驾驶平台 Apollo。PaddlePaddle也是当前国内唯一开源开放的深度学习平台。

华为在2019年也做了不少开源的工作,推出了原生数据库 GaussDB 以及鸿蒙OS等,一改保守作风。

而腾讯2019年也对外宣布”已在 Github 上开源了86 个项目,超过 1000 个贡献者参与了开源贡献,拥有超过 25 万个 Star 数,腾讯在 Github 全球公司贡献榜上排名前十“。

可以看出,各大企业近年来均在不断加大开源社区生态建设。

本文主要摘录:GitHub的X-lab2017


分享到:


相關文章: