全球最大代码托管平台 GitHub 在 2019年发布的年度报告中显示, GitHub上目前已有超过4000 万开发人员、将近 300 万个组织帐户。其中来自中国的贡献者数目仅次于美国,排名第二,中国的开发者 fork 并 clone 的项目比往年增加48%。
在开源日益重要的今天,我们也需要一份建立在全域大数据基础上得出的相对完整、可以反复进行推演的数据报告(报告、数据、算法均需开源)。因此,近日InfoQ联合X-lab 开放实验室发布“GitHub 2019 数字年报”,通过对2019年GitHub上 5.46 亿条日志进行分析,展现目前开源世界全貌,以及中国的开发者和企业组织在整个开源产业中的表现。
X-lab 开放实验室在本次报告中使用 2019 年全年 GitHub 日志进行统计,总日志条数约 5.46 亿条,相较 2018 年的 4.21 亿条增长约 29.7%。
在对开发者活跃度与项目活跃度统一定义下,统计得到 2019 年总活跃项目数量约 512万 个,相较 2018 年的约 313万 增长约 63.6%。值得关注的是,这其中仅有 1399 个项目的活跃度超过了 1000,占总项目数量不足万分之三。
2019 年总活跃开发者数量约 360万,相较 2018 年的约 303万 增长约 18.8%。而参与开发者数量超过 1000 人的项目仅有 333 个,可谓万里挑一。
这一数据结果说明大多数项目还是处于低活跃、少参与的状态。
对于这 512万 个项目的活跃度分布,如下图:
对于这 512万个项目的活跃开发者人数分布,如下图:
我们对 2019 年全年活跃开发者进行了活跃度统计与排名,这里给出世界活跃度 Top 10 的开发者账号列表:
#Global | name | activity | count | issue comment |
---|---|---|---|---|
1 | dependabot[bot] | 3641110 | 1430942 | 272213 |
2 | direwolf-github | 589065 | 340091 | 0 |
3 | github-learning-lab[bot] | 262617 | 86142 | 372192 |
4 | imgbot[bot] | 105982 | 54184 | 0 |
5 | autotester-one | 88989 | 47856 | 0 |
6 | dependabot-preview[bot] | 503923 | 42846 | 808143 |
7 | pull[bot] | 281141 | 26699 | 0 |
8 | renovate[bot] | 200693 | 26442 | 37663 |
9 | snyk-bot | 88096 | 26179 | 1 |
10 | greenkeeper[bot] | 147530 | 21873 | 825189 |
从数据统计来看,世界活跃度 Top 10 的开发者账号均为机器人账号,其中 7 个账号为 GitHub App。这也可以看出开发者最常使用的自动化仓库管理、协作功能有哪些,主要集中在依赖更新、自动同步上游、GitHub 学习、漏洞检测等方面。
根据项目活跃度定义,我们对 2019 年全年活跃项目进行了活跃度统计与排名,这里给出世界活跃度 Top 10 项目的列表:
#Global | name | activity | count | issue comment |
---|---|---|---|---|
1 | microsoft/vscode | 34371 | 19622 | 83592 |
2 | 996icu/996.ICU | 34201 | 19958 | 26279 |
3 | MicrosoftDocs/azure-docs | 33600 | 14286 | 96327 |
4 | flutter/flutter | 30437 | 14997 | 85735 |
5 | firstcontributions/first-contributions | 25695 | 9678 | 9471 |
6 | kubernetes/kubernetes | 22311 | 6890 | 238946 |
7 | tensorflow/tensorflow | 21984 | 10236 | 53492 |
8 | DefinitelyTyped/DefinitelyTyped | 19824 | 6352 | 44571 |
9 | ansible/ansible | 18330 | 6522 | 77312 |
10 | jlippold/tweakCompatible | 18104 | 5128 | 54975 |
其中996.ICU 作为一个现象级开源项目,大家并不陌生。2019 年 3 月 到 4 月,中国程序员为抗议 996 工作制,在GitHub发布了一个名为 996.ICU 的项目,该项目短时间内获得超过 20 万颗星星,成为太阳系最受欢迎的项目。
而活跃度最高的项目则是来自微软的跨平台代码编辑器Microsoft/vscode;此外微软使用开源的方式来建设其 Azure 云平台的项目MicrosoftDocs/azure-docs排名第三,显然微软在开源上的努力获得了程序员的认可。
在这个TOP10排名中,涉及了三个来自谷歌的项目,分别是:前端跨平台开发框架Flutter、容器编排系统Kubernetes以及深度学习框架TensorFlow,这也进一步说明谷歌在开源上的努力和影响力获得业内的认可。
针对所有排名项目,我们也筛选出了中国 Top 20 的开发者项目,列表如下:
# | #Global | name | activity | count | issue comment |
---|---|---|---|---|---|
1 | 2 | 996icu/996.ICU | 34201 | 19958 | 26279 |
2 | 28 | ant-design/ant-design | 9070 | 4466 | 21504 |
3 | 37 | ElemeFE/element | 7487 | 4319 | 10643 |
4 | 83 | selfteaching/selfteaching-python-camp | 5350 | 715 | 3676 |
5 | 90 | NervJS/taro | 5027 | 2260 | 14720 |
6 | 103 | PaddlePaddle/Paddle | 4750 | 922 | 10247 |
7 | 107 | vuejs/vue-cli | 4536 | 2830 | 6252 |
8 | 128 | pingcap/tidb | 4221 | 608 | 26105 |
9 | 137 | OpenAPITools/openapi-generator | 4066 | 1416 | 8770 |
10 | 141 | ant-design/ant-design-pro | 4040 | 1902 | 8671 |
11 | 169 | apache/incubator-echarts | 3632 | 2031 | 6576 |
12 | 193 | vuejs/vue | 3403 | 2067 | 4537 |
13 | 207 | Advanced-Frontend/Daily-Interview-Question | 3258 | 2125 | 5742 |
14 | 209 | youzan/vant | 3215 | 1656 | 5810 |
15 | 237 | nestjs/nest | 2947 | 1535 | 8488 |
16 | 270 | apache/dubbo | 2779 | 1039 | 5560 |
17 | 297 | ApolloAuto/apollo | 2592 | 666 | 3289 |
18 | 362 | alibaba/nacos | 2318 | 1131 | 3863 |
19 | 383 | PaddlePaddle/models | 2228 | 571 | 2968 |
20 | 385 | tikv/tikv | 2219 | 269 | 13025 |
从Top 20列表信息中我们可以看出,996icu/996.ICU的综合活跃度数值远远高于其他项目,数值上超过其他项目一个数量级。
列表中另外两个比较有趣的项目分别是 selfteaching/selfteaching-python-camp 和 Advanced-Frontend/Daily-Interview-Question,这两个项目的活跃排名是第4 和第 13,分别对应了教育和面试求职两个领域。这侧面反映出开发者对这两个领域的需求和关注度非常高。
从这个列表中我们还发现,在中国开源成绩比较突出的两家公司是百度和阿里。百度的深度学习平台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等等。这说明在国内,前端群体在社区更为活跃;另外前端代码一般也不太涉密,因此公司在心态上更开放一些。不过这其中也有一点需要引起注意,上榜的前端项目组件库居多,但是缺少核心项目。
针对排名前 20 的中国开源项目,我们对仓库的历史 commits 记录进行挖掘,并做了可视化展示(蓝色节点代表仓库文件,红色节点代表用户)。Git 仓库中的每一个 commit 记录由贡献者产生,对仓库的一个或者多个文件产生影响,因此对特定时段内的所有贡献者的提交记录分析能反映出贡献者的活跃程度、协作模式以及项目社区本身的类型属性。
从可视化的关系图来看,996.ICU项目从 3 月份开始出现提交记录,且 3、4 两个月份最为活跃,之后热度开始消减。该项目图中存在一个主要贡献者n_996Icu,和另一个相对较大的用户节点机器人账户 ImgbotApp 。
996 .ICU全年贡献图
从 TiDB 项目的内容贡献图来看,整个社区存在多个核心维护者,他们各自维护着不同的模块,周边也有大量的开发者在做出贡献。其背后的企业PingCAP ,是业界非常典型的开源企业,他们的协作模式是所有开发人员通过 GitHub 进行协作。
TiDB 2019全年贡献图
以 Vuejs 下的两个项目vue-cli 和 vue为例,在 vuejs/vue-cli 项目中,从每月贡献图可以看出该项目的大部分贡献由Haoqun Jiang做出,单月的主要贡献者不超过两名。
Vuejs/Vue 大部分贡献都是由一个账号Evan You 尤雨溪做出的,该项目 4 月份之后内容贡献图呈现出许多协作孤岛的形态,反映出贡献者对少量文件的修改,项目变动不大。
Vue 3月和4月内容贡献图
我们分别对全球项目活跃度 Top 1000 的项目、全球项目参与人数 Top 1000 的项目和中国开源项目进行了开发语言方面的统计,可以发现 JavaScript 使用最多。
原因我们分析如下:
此外,全球项目活跃度 Top1000 和全球项目参与人数 Top 1000 的项目中,Python的使用居于第二位,可能是因为:
在中国开发者社区中,我们发现除了JavaScript外,Java和Go的活跃度也很高,分别排在第二、第三。
我们认为:在服务器和移动端开发上,Java 还没有真正意义上的对手,可以预见Java 依旧是企业软件、大数据、电商…最核心的技术栈。Go 是谷歌开发的新一代编程语言,在过去的几年里取得了很大的成功。现代的云端、网络和 DevOps 软件的很大一部分都是用 Go 编写的,例如 Docker、Kubernetes、Terraform、etcd、Istio 等项目。许多公司也将它用于通用场景下的开发工作,Go语言中国社区也极具活力。
对比全球的开发语言排行榜,我们发现中国开源项目中Python的使用与Java、Go、C++相比较少。另外还值得关注的是,Ruby和PowerShell在中国社区也并不受重视。
其实各大开源项目的背后,基本都有科技公司的支持,我们给出了一个科技公司维护的 GitHub 组织和项目列表,并根据该列表,计算出了科技公司所维护的开源项目在 2019 年的活跃情况与开发者参与情况,结果如图:
# | name | activity | count | issue comment | top 500 | top 10000 |
---|---|---|---|---|---|---|
1 | Alibaba | 11049 | 846 | 137871 | 6 | 65 |
2 | Baidu | 3795 | 337 | 35064 | 4 | 15 |
3 | PingCAP | 3331 | 102 | 62224 | 2 | 16 |
4 | Tencent | 2601 | 205 | 20466 | 0 | 18 |
5 | Huawei | 1043 | 90 | 12677 | 1 | 4 |
6 | Deepin | 1012 | 91 | 7192 | 0 | 2 |
7 | WeBank | 728 | 36 | 1158 | 0 | 0 |
8 | 360 | 690 | 109 | 2875 | 0 | 2 |
9 | JD | 670 | 41 | 23140 | 2 | 4 |
10 | Xiaomi | 526 | 44 | 2815 | 0 | 2 |
11 | Youzan | 480 | 35 | 8442 | 1 | 2 |
12 | DiDi | 476 | 29 | 4572 | 0 | 5 |
13 | Meituan | 405 | 39 | 3534 | 0 | 2 |
14 | Netease | 340 | 45 | 4349 | 0 | 3 |
15 | Qunar | 281 | 33 | 497 | 0 | 0 |
17 | Bilibili | 255 | 25 | 2422 | 0 | 3 |
19 | CTrip | 192 | 14 | 4300 | 0 | 1 |
20 | Bytedance | 170 | 23 | 1187 | 0 | 0 |
21 | Vipshop | 104 | 9 | 228 | 0 | 0 |
22 | Douban | 98 | 17 | 98 | 0 | 0 |
在国内企业的开源数据中,我们可以看到阿里的数据几乎在所有类别里都名列第一,有时甚至是其它公司之和,并且在社区化 / 开放等方面也做得不错。但放到全球角度,出自阿里的知名度相对较高的项目,还是Apache Dubbo,以及在2019年收购而来的大数据流处理框架Flink。2019年9月在杭州的云栖大会上,阿里宣布贾扬清正式担任阿里巴巴开源技术委员会负责人,开源将明确升级为阿里技术战略之一。
AI 是百度开源最鲜明的竞争力,比如PaddlePaddle和自动驾驶平台 Apollo。PaddlePaddle也是当前国内唯一开源开放的深度学习平台。
华为在2019年也做了不少开源的工作,推出了原生数据库 GaussDB 以及鸿蒙OS等,一改保守作风。
而腾讯2019年也对外宣布”已在 Github 上开源了86 个项目,超过 1000 个贡献者参与了开源贡献,拥有超过 25 万个 Star 数,腾讯在 Github 全球公司贡献榜上排名前十“。2019年6月份腾讯发布了开源战略路线图,另外Angel开源项目也已毕业,成为Linux AI基金会第一个来自中国的顶级项目,相信未来几年会有更多惊喜。
可以看出,各大企业近年来均在不断加大开源社区生态建设。
2019年的Github曾一度被推到风口浪尖。2019年5月,ASF 和 GitHub 官网先后更新了两则消息,表明其旗下的项目、产品将受到美国出口法律的约束。
2019年7月,GitHub封禁部分国家、地区的开发者账号,导致这些账户无法创建私有库,并且关闭了已经创建的私有库。这些开发者并未得到提前通知,没有任何缓冲备份时间。当时还有消息称GitHub将采取实名制,以便于执行美国贸易制裁。
2019年12月,据《金融时报》消息称,GitHub 正计划采取“分阶段的方式”,考虑在中国设立一家外商独资子公司,以便探索在中国建立合资企业和托管 GitHub 内容的可能性。
这些事件也给我们敲响了警钟,我们不仅需要拥有自己的核心技术,同样,我们也需要有自己的代码托管平台。这些也是中国企业和开源社区正不断努力的方向。
附录:
原文地址:https://github.com/X-lab2017/github-analysis-report-2019/blob/master/REPORT.md
分析程序: https://github.com/X-lab2017/github-analysis-report-2019
参考文献:
关于作者:
“GitHub 2019 数字年报”由InfoQ联合X-lab开放实验室共同发布。X-lab开放实验室是一群由来自华东师范大学、同济大学的师生所构成的开放创新共同体,专业背景包括计算机科学、数据科学及其相关跨学科,长期思考并实践教育与开源两大主题。本次数字年报的主要贡献者包括:赵生宇、王伟、周添一、范家宽、王皓月、夏小雅、杨尚辉等。
领取专属 10元无门槛券
私享最新 技术干货