摘要:开源软件已经成为人类数字社会的基石,是全人类共同努力的结晶,开源协做对人类数字文明的发展起到了巨大的推进做用。GitHub 做为全球范围内最主要的开源协做平台,无数个开源社区在其上孕育而生,其背后海量的开发者行为数据蕴含了大量的个体贡献规律、群体协做模式、社区健康情况、生态发展趋势、以及商业战略价值。《GitHub 2020 数字洞察报告》是由 X-lab 开放实验室发起,联合多家科研机构与开源社区所共同完成的一个反映全球开源现状与趋势的开源项目。报告涵盖了当今全球开源的整体状况分析、开发者分析、项目分析、领域案例、每个月之星等众多内容,但愿以此绘制人类的"开源数字生态地图",推进开源社会创新,繁荣开源数字文明。前端
引言git
2020 注定是个不平凡的数字,开源的 2020 也是如此。github
即使是在新冠疫情肆虐的今天,开源依旧大发展,甚至发展的更加迅速。从各项数据指标都能发现:GitHub 的日志数 2020 年达到了 8.6 亿条,相较 2019 年增加了 42.6%;活跃代码仓库达到了 5,421 万个,相较 2019 年增加了 36.4%;活跃开发者数达到了 1,454 万人,相较 2019 年增加了 21.8%。算法
管理学大师彼得·德鲁克曾经说过:“你若是没法度量它,就没法管理它”(If you can not measure it, you can not manage it),进而也没法提升它,而软件行业至今也尚未找到一个能够有效度量软件开发生产效率(Productivity)的方法。segmentfault
整个开源生态系统更是如此,个体如何度量、社区如何度量、管理者如何利用这些数字作更好的决策,这些都是问题。但在咱们看来,这些既是挑战,也是机遇。要想有效的开展开源治理的工做,就难以绕开度量的问题,GitHub 全域数据给予了咱们这样一个极佳的机会。前端框架
度量也是一把双刃剑。度量具备极强的引导性,它会激励你重视并改善可以度量的元素,但也可能使你忽视没法度量的元素并使之恶化。在全球大规模的开源社区与生态构建的过程中,如何找到合理的度量,并合理的利用这些度量呢?但愿本报告可以给你们带来一些启示,这也是本报告的重要目的之一。网络
今年的《GitHub 2020 数字洞察报告》主要的变化包括:框架
本次报告的主要开源洞察概述以下:机器学习
如下是《GitHub 2020 数字洞察报告》正文。ide
从整体数据来看,2020 年整年,GitHub 全域事件日志数量总计约 8.6 亿条,较 2019 年 6.1 亿条增加约 42.6%,是近五年来增加最快的一年。本次报告经过项目与开发者行为数据,统计获得 2020 年 GitHub 全域活跃项目数量约 5,421 万个,活跃开发者帐号约 1,454 万个,分别较 2019 年增加了 36.4% 与 21.8%。
GitHub 2015 - 2020 年事件日志量、活跃仓库数量、活跃帐号数量整体状况
开源世界的核心是贡献开源的开发者们,如同 Apache Way 所推崇的 Community Over Code,由开发者组成的社区才是开源生命力的源泉。本报告将从全域开发者活跃状况、GitHub Apps 使用状况、开源开发者典型工做时间画像、全球开发者时区分布、开发者使用语言分布等多个角度对 GitHub 2020 年全域开发者进行全面分析。
全域开发者活跃状况
经过对全域开发者进行活跃度与活跃仓库数量的统计,咱们获得 GitHub 全域开发者的活跃度分布状况和单个开发者活跃仓库数量分布状况以下:
开发者活跃度与活跃仓库数量分布图
经统计,活跃度超过 2,000 的开发者数量为 5,445 个,占全域开发者数量不足万分之六。而大部分开发者活跃度都在 [0, 500] 区间内,占全域开发者数量的 99.45%,说明大多数开发者仍是处于低活跃度的一个状态。
观察曲线尾部,咱们发现开发者活跃仓库数量在最后有一个回升,实际上是因为部分未被过滤掉的自动化协做类帐号的活跃仓库数量巨大,远超正常人类开发者,所以尾部造成 V 形曲线。
另外,咱们经过活跃度统计了全域活跃排名最高的 10 个开发者,其中 8 个帐号为 GitHub Apps,另外两个帐号为自动化协做的开发者帐号。
GitHub 2020 年全域开发者帐号活跃度统计 Top 10
自动化协做机器人因为运行在服务端,能够同时服务于众多项目,从而具备极高的活跃度和协做仓库数量。
本文所涉及到的诸如活跃度的详细计算方法请参阅完整的报告内容。
GitHub Apps 使用状况
在全球最活跃开发者帐号中,大部分为 GitHub Apps,故本报告对 GitHub Apps 数据作出相关统计,GitHub Apps 年活跃帐号数量(活跃数量)与所产生日志总量占整年日志占比(日志占比)的变化如图所示。
GitHub Apps 活跃帐号数量与日志占比
经过图能够看到,GitHub Apps 自 2016 年推出以来,在近年获得了迅猛发展。从日志占比来看,2019 年相较于 2018 年提高了 288%,2020 年相较 2019 年增加 141%,达到了 12% 以上。
将来,基于 GitHub Apps 的自动化协做机器人会被更加普遍的用于项目的自动化协做,更好的帮助开源项目进行大规模协做的管理。
全域日志时间分布
因为 GitHub 事件日志具备详细的时间戳信息,故能够经过对时间维度的统计分析进行洞察,例如在 UTC 标准时间下,全球的工做时间分布如图所示。
GitHub 2020 年全球日志时间分布状况
若咱们认为主流开发者正常的工做时间为每日 9 时至 21 时,则在全球视角下,经过日志量来看,能够看到 GitHub 平台上的开发者由欧美主导。并且周末的活跃明显低于工做日,也与 GitHub Octoverse 2020 报告中更多开发者使用 GitHub 工做而不只仅是基于兴趣开发相吻合。
全球开发者时区分布
开发者的地理分布状况一直是开源项目全球化指标的一个重要方面。经过对 GitHub 全域开发者活跃度前 5 万名开发者的统计,咱们获得全球开发者在各时区分布估计如图所示。
GitHub 2020 年全球开发者时区人数分布图
能够看到,在高活跃开发者中,美洲(美国、加拿大、南美)开发者分布最多,虽然单时区的开发者比例不是最高,但整体开发者占比高达 33% 左右。而欧洲拥有最高的单时区开发者比例。亚洲的开发者数量依然较少,但中国、俄罗斯开发者相较其余国家仍是有较高的开源活跃。而太平洋地区则因为人口分布缘由,开发者比例最低。
全域项目整体数据
基于开发者活跃度定义,咱们也给出开源项目活跃度的计算方法。在给定的活跃度计算方法下,过滤了 GitHub Apps 相关帐号的协做行为,共统计获得 2020 年有效的总活跃项目数量约 1167 万个。这些项目的活跃度分布状况与项目中的参与开发者数量分布状况以下图所示。
GitHub 2020 项目活跃度及参与开发者数量分布状况
经统计,2020 年整年项目的活跃度值最高为 971.1,但高活跃度的项目数量占比极低,超过 99.95% 的项目活跃度值都低于 10,即绝大部分项目处于低活跃状态。另外,项目中的参与开发者数量最高达 85546 ,即在 2020 年内最多有 85546 个开发者参与了同一个项目。但有 71.21% 的项目参与开发者数量都低于 10,即 2020 年整年 GitHub 上大部分项目的参与人数都在 10 人之内。
项目活跃度 Top 20
根据项目活跃度定义,咱们对 2020 年整年活跃项目进行了活跃度统计与排名,这里给出世界活跃度 Top 20 项目的列表。
GitHub 2020 年全域项目活跃度 Top 20
同时,咱们也经过各类渠道采集了中国的开源项目列表,并一样给出了中国项目的活跃度排名状况,以下表所示。
GitHub 2020 年中国项目活跃度 Top 20
从这个列表中,咱们发现,PingCAP 在开源领域的表现很是地亮眼。Top 20 项目中上榜的项目有6个。阿里在开源领域中的成绩也是很是不错。Top 10项目中上榜的项目有2个。百度在人工智能领域的表现很是不错,其深度学习平台 PaddlePaddle 占据了2个项目。
中国的 Top 20 项目列表中,包括阿里的 Ant-Design 组件库,京东基于 React 前端框架的开发框架 taro,由饿了么(已被阿里收购)前端团队开源的 Vue UI 组件库Element等等,这说明了在国内,前端群体在社区更为活跃;另外前端代码通常也不太涉密,所以公司在心态上更开放一些。不过这其中也有一点须要引发注意,上榜的前端项目组件库居多,可是缺乏核心项目。
而在各大开源项目的背后,基本都有科技公司的支持,咱们计算出了科技公司所维护的开源项目在 2020 年的活跃状况,结果以下表所示。
GitHub 2020 中国企业开源项目活跃度一览
在国内企业的开源数据中,咱们能够看到阿里巴巴的数据在不少指标上的表现里都很是不错,有的指标值甚至是其它公司之和,而且在社区化/开放等方面也作得不错。
OpenGalaxy
经过活跃度的数据统计获得的结果会受到自动化协做行为的影响,而且不一样生命周期阶段的项目的活跃度可能不具有可比性,故在本次报告中咱们引入了全域项目协做关系网络,开源星系 —— OpenGalaxy。
GitHub 2020 全域项目协做关系网络——OpenGalaxy 2020
GitHub 2020 最活跃的 22.1 万个开源项目组成的协做网络图。该图中节点的大小表示项目的影响力大小,节点的着色表示节点所属的协做聚类结果。在协做网络的影响力评估下,获得 GitHub 2020 全域影响力最高的项目 Top 20 以下表所示。
OpenGalaxy 2020 全域项目影响力 Top 20
能够看到,VSCode 的影响力从活跃度的第 5 跃升为第 1,且高于排名第 2 的 flutter 约 64.7%,以巨大的优点成为全球最具影响力的项目。事实上这是因为 VSCode 在成为全球最流行的 IDE 的同时,也与其余各领域的顶级项目产生了大量的协做关联。
OpenGalaxy 具备优秀项目会因优秀开发者而关联在一块儿的特性,从而不会因自动化行为致使影响力指标虚高,具备较好的算法稳定性,影响力指标的变化背后必定意味着开发者群体的活跃行为迁移,从而能够较好的反映出 GitHub 全域的项目影响力情况。其它详细内容请参见完整的报告正文。
本报告提出一种开源象限(OpenQuadrant)的方法来分析一个开源项目在影响力、全球化、社区规模三个核心特性方面的表现。基于该开源象限分析,使用散点图来表示,横纵两个维度为项目影响力指标和项目全球化指标,为了方即可视化,咱们采用取对数的形式呈现上述两个指标,而使用散点图上的点的大小来刻画项目参与的活跃人数,用来反映一个项目的社区规模。
基于以上,开源象限将整个平面分红了四块区域,分别是:
基金会项目分析
CNCF 的英文全称是 Cloud Native Computing Foundation,即“云原生计算基金会”。
下图为 CNCF 下云原生领域开发者时区分布图,能够看到该领域的开发者时区分布与全域项目的开发者时区分布较为接近,说明 CNCF 云原生领域的项目全球化程度较高。
CNCF 下云原生领域开发者时区分布
CNCF 下云原生领域的开源象限分析可视化结果以下图所示。Kubernetes项目不管是在影响力、全球化、仍是社区开发者体量上面,当之无愧的处于第一的位置。
CNCF 下云原生领域的开源象限
LF AI&Data 是 Linux Foundation下的一个综合型基金会,支持人工智能、机器学习、深度学习和数据方面的开源创新。
LF AI & Data 下数据与人工智能领域的开源象限分析可视化结果以下图所示。能够看到该领域有很多全球化作得比较好的项目,很是符合人工智能全球走热的趋势。
LF AI & Data 下数据与人工智能领域的开源象限
Apache 软件基金会(ASF)成⽴于 1999 年, 是⼀个依据 501(c)在美国成⽴的非营利性公共慈善组织,基金会的使命是为公共利益而提供软件。
Apache 下大数据领域的的开源象限分析可视化结果以下图所示。能够看到该领域的项目总体分布具备较好的分散性,Spark、Flink、Hadoop 等明星项目占据着头牌位置。
Apache 下大数据领域的开源象限
Apache 软件基金会下来自中国的项目的开源象限分析可视化结果以下图所示。能够看到该领域的 Echarts、Skywalking、Dubbo 和 Shardingsphere 四个项目处于第一方阵,体现了较强的实力。
Apache 软件基金会下中国项目的开源象限
更加具体的详细信息请参见完整报告正文。
VSCode 案例分析
VSCode 项目做为开源生态中的一颗北极星,在 2020 年依旧保持着旺盛的生命力,这一年,共有 206645 条记录由 VSCode 产生,相比 2019 年的 121490 条,增加了接近一倍;这一年,VSCode 的项目年平均活跃度分值为 385,在全域项目中排名第 7 位;这一年,有 46639 位开发者(包含协做机器人帐号)在项目中活跃过,在这艘开源航母上发出有力的协做信号。
同时咱们经过开发者在项目中的协做关系构建了 VSCode 在 2020 整年的开发者协做网络,如图所示。
VSCode 项目开发者协做网络
在这个由 2 万多个开发者组成的协做网络中,节点为开发者帐号,边为协做关系,节点的大小为对应开发者帐号的活跃度。在这个协做网络中,处在网络核心位置的较大的节点是 VSCode 的核心团队成员,他们不只有很高的活跃度,并且与其余开发者均具备较高的协做关系,这个群体的数量在百人左右。紧接着外侧是 VSCode 的重度使用者或贡献者,他们可能随时提交 Issue 或 PR 进行讨论或贡献,这个群体的数量在千人级别。最外侧,也是最大量的开发者是 VSCode 的通常用户和偶发贡献者,大部分仅在本身关心的问题上提问或讨论。
除了顶级项目以外,GitHub 上还有一些短时间内受到广大开发者大量关注的项目。这些项目多是现象级项目,也有可能在将来成为顶级项目。这些项目可能与社会热点有关,例如,与新冠疫情相关的项目,与学生毕业求职相关的项目等等。发现这些项目以及解释这些项目在短时间内受到大量关注的缘由是颇有意义的。所以,本部分“每个月之星”列举了在 2020 年每月里受到开发者大量关注的项目。如下是咱们挑选出来的项目,具体介绍能够参见报告全文内容:
1月:microsoft/playwright
2月:wuhan2020/wuhan2020
3月:CSSEGISandData/COVID-19
4月:labuladong/fucking-algorithm
5月:design-resources-for-developers
6月:CnC_Remastered_Collection
7月:JaidedAI/EasyOCR
8月:geekxh/hello-algorithm
9月:cli/cli
10月:developer-roadmap
11月:ytdl-org/youtube-dl
12月:beurtschipper/Depix
《GitHub 2020 数字洞察报告》做为一个数据驱动的可视化工具,主要为你们提供一个新的视角来观察今天的开源世界,进而结合各自的行业经验得到洞见。从本次年报开始,咱们将这个做品也做为一个开源项目进行运营,逐渐缩短发布的周期,甚至按需提供个性化的按需服务。
如若发现数据错误或遗漏,欢迎提交 Issue 或 PR 到项目的 GitHub 仓库,本报告文本部分采用 CC-BY-4.0 许可协议。具体请参见完整报告内容。
《GitHub 2020 数字洞察报告》是由 X-lab 开放实验室发起,由“源光闪烁”开源科技媒体策划,联合了华东师范大学数据科学与工程学院、开源社、上海开源信息技术协会、开源社会工程研究院(筹)等多家科研机构与开源社区所共同完成。
在春节期间从零开始,彻底经过线上远程协做的方式,在十天内协做完成了报告的所有内容,并由来自美国和欧洲的顾问专家提出意见与建议。
本次数字洞察报告的主要贡献者包括:赵生宇、王伟、周添1、翁振杰、王皓月、夏小雅、朱香宁、杨鸣、宁泽欣、林海铭、王福政、史经犇、娄泽华、顾业鸣、李思颖等,特别感谢吴雪(雪哥)和 Kate(杨佳)做为项目顾问,为数字洞察报告提供指导与建议。
咱们欢迎更多的开源爱好人士加入咱们,共同推进开源在世界的发展。
完整的报告内容,请点击“传送门”获取,或经过如下连接获取:http://oss.x-lab.info/github-...