作者 | Allumos

来源 | 源光闪烁

开源软件已经成为人类数字社会的基石,是全人类共同努力的结晶,开源协作对人类数字文明的发展起到了巨大的推动作用。GitHub 作为全球范围内最主要的开源协作平台,无数个开源社区在其上孕育而生,其背后海量的开发者行为数据蕴含了大量的个体贡献规律、群体协作模式、社区健康状况、生态发展趋势、以及商业战略价值。

日前,由 X-lab 开放实验室发起,联合多家科研机构与开源社区所共同完成了一个反映全球开源现状与趋势的开源项目报告——《GitHub 2020 数字洞察报告》。该报告涵盖了当今全球开源的总体情况分析、开发者分析、项目分析、领域案例、每月之星等众多内容,希望以此绘制人类的"开源数字生态地图",推动开源社会创新,繁荣开源数字文明。

通过《GitHub 2020 数字洞察报告》,我们主要有以下发现:

  1. 全球开源事业大发展,社区活跃行为、开发者数量、开源仓库数量均大幅提升;

  2. 开源软件生产流水线自动化程度大幅提升,多样化的数字协作机器人成为主流;

  3. 基于海量数据的活跃度模型能够有效地持续反映开发者与社区的整体状况;

  4. 主流开发者的工作时间具有较强规律,并和工作时间开始重合,公司化开源成为绝对主流,996 开源项目开始出现;

  5. 美洲开发者分布最多,欧洲拥有最高的单时区开发者比例,亚洲开发者数量依然较少,中国相较其他亚洲国家具有较高的开源活跃度;

  6. JavaScript 和 Python 依旧是语言排行榜上的冠亚军,HTML 和 CSS 在全域开发者语境下更受欢迎,而 TypeScript 和 Rust 语言则上升明显;

  7. 谷歌、微软等老牌企业依旧为活跃的开源贡献大户,国内的企业阿里活跃度排名第一,PingCAP 的表现则非常亮眼;

  8. 第一次通过开源星系认识 GitHub 开源项目的全貌,主流技术领域的开源生态已经形成,新的开源社群则不断涌现,极少量项目还是协作孤岛;

  9. CNCF、LF、Apache 等基金会在技术领域上各有侧重,通过开源象限能够进一步区分同类项目的发展阶段与成熟水平;

  10. 开发者时区分布图和协作网络成为开源社区多样性与健壮性的有效分析手段,能够更好地指引社区经理的开源治理工作

以下是《GitHub 2020 数字洞察报告》正文。

总体情况

从总体数据来看,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)的方法来分析一个开源项目在影响力、全球化、社区规模三个核心特性方面的表现。基于该开源象限分析,使用散点图来表示,横纵两个维度为项目影响力指标和项目全球化指标,为了方便可视化,我们采用取对数的形式呈现上述两个指标,而使用散点图上的点的大小来刻画项目参与的活跃人数,用来反映一个项目的社区规模。

基于以上,开源象限将整个平面分成了四块区域,分别是:

  • 前瞻(Foresighted):落在该区域的项目影响力强,同时项目全球化程度高;

  • 引领(Leading):落在该区域的项目影响力强,但项目全球化程度较低;

  • 行动(Acting):落在该区域的项目影响力较弱,但项目全球化程度高;

  • 进入(Incubating):落在该区域的项目影响力较弱、同时项目全球化程度也较低。

基金会项目分析

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 许可协议。

完整的报告内容,请点击下方的“阅读原文”获取

☞虎牙被抬员工当事人再发声;淘宝回应网店客服“看见”用户未发送内容;Python 3.9.2 发布 | 极客头条☞Ant Design 被删代码已恢复,现登顶 GitHub Trending Top 2☞「1s」即可!用 VS Code 一键玩转 GitHub 代码!
☞Android 12 预览版发布,64G手机用户:我又活了

微软、阿里抢占开源一线,JavaScript、Python 备受热捧,GitHub 2020 数字洞察报告揭晓!...相关推荐

  1. JS、Java、C 依然强势,Go、Kotlin、Python 成为潜力股,2020 开发者生态系统报告揭晓!...

    编译 | 屠敏 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 一切过往,皆为序章. 2019 年,走出舒适区的技术圈迎来消费互联网向产业互联网的转型,也开始了数字 ...

  2. Vue3.0 备受热捧!2020 前端开发进阶必读

    你好,我是汤小洋. 前华为全栈工程师,南京大学软件工程硕士,拥有11年全栈开发及内部培训分享经验. 作为一名前端人,学习从不是一件容易的事,这是我一路走过来的真实感受."只要付出,就有收获& ...

  3. VS Code成主宰、Vue备受热捧!2019前端开发趋势必读

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Never abandon an old friend. You will ...

  4. VS Code 成主宰、Vue 备受热捧!2019 前端开发趋势必读

    前端在生产和开发中占据着越来越重要的地位,PC 端.手机端.桌面端.智能手表端等等设备都离不开前端的身影.本文将围绕框架.编程语言.工具.React.Vue 等方面,全面回顾 2019 年前端与 We ...

  5. 科创、创业板块崛起,天弘科创创业50指数基金缘何备受热捧?

    要说当代年轻人最喜欢的理财方式,首当其冲的应该就是基金了吧.相关数据显示,截至今年,我国购买基金的人数已经超过了6亿,其中有超过60%的基民均为年轻人.并且,新基金规模仅用了三个月,就达到了万亿规模. ...

  6. PMP认证为什么备受热捧?

    PMP®项目管理专业人士资格认证是美国项目管理协会(PMI)对项目管理所需的知识.技能和工具进行的概括性描述,给项目管理人员提供统一的行业标准,也就是说PMP®是项目管理的通用语言.通过学习PMP®可 ...

  7. GitHub 全域数字年报:携手推动开源世界的超级协作

    点击上方"开源社"关注我们 | 作者:Hyperator | 转载自:Xlab开放实验室 | 编辑:沈于蓝 | 设计:朱亿钦 | 责编:王皓月 开源社引言 "中国开源年度 ...

  8. 【效率】微软开源最强Python自动化神器!不用写一行代码!

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

  9. Google、亚马逊、微软 、阿里巴巴开源软件一览

    Google.亚马逊.微软 .阿里巴巴开源软件一览 大公司为什么要发布开源项目?一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑.二是开源能够倒逼工程师写出更好的代码.三是开 ...

最新文章

  1. Spring Boot中Spring data注解的使用
  2. 使用MyBatista----上传图像
  3. 使用mysql innodb 使用5.7的json类型遇到的坑和解决办法
  4. 如何让Mac电脑在Finder窗口顶部显示文件路径?
  5. CC2530串口通讯的实现
  6. 小型仓库管理系统——毕业论文
  7. 计算机专业术语pe什么意思,pe是什么意思
  8. 油猴子(Tampermonkey )API userscliptAPI 中文翻译
  9. 移动办公APP的开发费用和开发流程开发流程
  10. Java类与面向对象(创建对象 成员方法 形参实参 递归 重载 可变参数 作用域 构造方法 this)
  11. 视频文件损坏怎么修复?简单的修复办法分享
  12. 语音芯片c语言程序,语音芯片pm50 在430单片机上的C语言编程
  13. 多线程设计模式-线程池模式
  14. noip 2009 靶形数独
  15. Linux常用命令和操作
  16. 算法(普通算法+大数据)
  17. 计算机组装与维修期末C卷,计算机组装与维修期末考试试卷
  18. 为什么你学过Java却忘光了——记第一次助教同学见面会
  19. Error: could not begin a transaction
  20. 物联网在数字化医院的广阔应用前景

热门文章

  1. 【分享】如何管理焦虑情绪
  2. 网络协议分析(Network Protocol Analysis)之点到链路控制协议LCP
  3. 敏捷开发免费管理工具——火星人预览之一:需求与故事树
  4. THUWC2017 随机二分图
  5. 操作系统-Windows操作系统的线程调度了解这些
  6. TODO maven学习笔记
  7. jsonp/ajax 自己的一些总结
  8. VS2010中无法嵌入互操作类型“......”,请改用适用的接口的解决方法
  9. 解决android webkit的css postion:fixed支持问题
  10. [ssh] remote host key has changed