站长之家首页 > 数说 > GitHub最新资讯 > 正文

我们分析了GitHub上5.46 亿条日志,发现中国开源虽然贡献大但还有这些不足...

2020-02-02 15:11 · 稿源:InfoQ公众号

声明:本文来自于微信公众号InfoQ(ID:infoqchina),作者:InfoQ、X-lab, 授权站长之家转载发布。

全球最大代码托管平台 GitHub 在 2019 年发布的年度报告中显示, GitHub 上目前已有超过 4000 万开发人员、将近 300 万个组织帐户。其中来自中国的贡献者数目仅次于美国,排名第二,中国的开发者 fork 并 clone 的项目比往年增加 48%。

在开源日益重要的今天,我们也需要一份建立在全域大数据基础上得出的相对完整、可以反复进行推演的数据报告(报告、数据、算法均需开源)。因此,近日 InfoQ 联合 X-lab 开放实验室发布“GitHub 2019 数字年报”,通过对 2019 年 GitHub 上 5.46 亿条日志进行分析,展现目前开源世界全貌,以及中国的开发者和企业组织在整个开源产业中的表现。

Github

1、宏观统计结果

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 万个项目的活跃开发者人数分布,如下图:

2、世界 Top 10 开发者账号

我们对 2019 年全年活跃开发者进行了活跃度统计与排名,这里给出世界活跃度 Top 10 的开发者账号列表:

从数据统计来看,世界活跃度 Top 10 的开发者账号均为机器人账号,其中 7 个账号为 GitHub App。这也可以看出开发者最常使用的自动化仓库管理、协作功能有哪些,主要集中在依赖更新、自动同步上游、GitHub 学习、漏洞检测等方面。

3、世界 Top 10 项目

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

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

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

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

4、中国 Top 20 项目分析

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

从 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 等等。这说明在国内,前端群体在社区更为活跃;另外前端代码一般也不太涉密,因此公司在心态上更开放一些。不过这其中也有一点需要引起注意,上榜的前端项目组件库居多,但是缺少核心项目。

5、repo 协作关系图

针对排名前 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 月内容贡献图

6、开发语言分析

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

原因我们分析如下:

  • JavaScript 是一门直接被嵌入到 HTML 中的脚本语言,是一门可以被 Web 浏览器理解的语言。它无需编译、在浏览器环境可以直接运行的特性,让 JavaScript 项目在活跃度的提升上占据了优势。

  • 谷歌开发的 Angular 和 Facebook 开发的 React,另外还有 Vue,这些主流前端框架都是 JavaScript 生态圈中的一部分。

  • 这几年随着行业的发展,JavaScript 变得几乎”无所不能“,现在基本所有的主流互联网应用,其前端都有大量的 JavaScript 代码。比如我们日常使用的邮件、社交工具等等。


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

  • Python 相较于其他主流编程语言具有更好的可读性,简单易学、易于维护。

  • Python 应用范围广,它自带的各种模块加上丰富的第三方模块,免去了很多“重复造轮子”的工作,可以更快地实现多种功能。

  • 人工智能的浪潮进一步推动了 Python 的发展,很多人工智能任务以及大数据分析都会优先使用 Python 实现。

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

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

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

7、国内技术公司开源项目一览

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

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

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

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

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

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

8、展望

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 年度报, https://octoverse.github.com/

中国开源年度报告, https://kaiyuanshe.cn/project/china-open-source-report/

中国开源项目 Grank 分析报告(2019), https://linux.cn/article-11755-1.html

徐川,覃云:中国互联网公司开源项目调研报告, https://www.infoq.cn/article/G4O6JUhJF*Tsv9eWM0L6

云计算开源产业联盟,开源产业白皮书(2019),2019 云计算开源产业大会, 北京.

Gitee 2019 年度数据报告, https://blog.gitee.com/2020/01/08/gitee-2019-annual/

作者介绍

“GitHub 2019 数字年报”由 InfoQ 联合 X-lab 开放实验室共同发布。X-lab 开放实验室是一群由来自华东师范大学、同济大学的师生所构成的开放创新共同体,专业背景包括计算机科学、数据科学及其相关跨学科,长期思考并实践教育与开源两大主题。本次数字年报的主要贡献者包括:赵生宇、王伟、周添一、范家宽、王皓月、夏小雅、吴绍岭、林海铭、李苗进、吴佳洁、黄立波、陈亮、杨尚辉、方孝君、陈旭刚等。

  • 大家在看
  • 相关推荐
  • 怀疑开发者在“造核弹”?GitHub不断封禁开源项目

    继去年封禁伊朗等地区账号后,GitHub 今天再次封禁了一个属于微软的前端开源项目 Aurelia,理由是项目中有两名来自伊朗的外部贡献者。虽然 GitHub 首席执行官致歉表示“这次的确是个错误”,但是开发者们显然不买账:GitHub 封禁项目的行为是否太随意了?这样的行为难道不是与开源信念背道而驰吗?

  • 腾讯首度披露开源协同成果 内部代码开源率提升至70%

    腾讯今日对外发布《腾讯研发大数据报告》,披露了2019 年公司在产品及技术研发方面的重要数据,据悉,这也是腾讯自技术委员会成立以来第一次主动对外披露研发相关大数据。

  • GitHub移动端APP正式上线,可以在手机上阅读以及审查代码

    3月18日据机器之心消息,GitHub Mobile APP 正式上线了,在 iOS 和安卓端都可以免费下载使用。据官方介绍,移动 app 有四个主要的特性功能值得关注。用户可以在手机上浏览代码、管理工作日程和任务、评价其他工作和项目、合并和管理分支等。

  • 刚刚!GitHub宣布正式收购npm

    刚刚,代码共享平台 GitHub 发布公告称,该公司已经正式收购广受欢迎的开源 Javascript 包管理服务 npm。

  • GitHub宣布已签署收购npm协议

    GitHub官方于 3 月 16 日正式宣布已经签署了收购npm的协议,未来GitHub将帮助npm满足快速增长的JavaScript社区的需求。

  • Github pages 可能遭遇中间人攻击

    Github pages 可能遭遇中间人攻击。中国 IP 访问会显示一个无效的证书,域名所有者使用了一个腾讯的邮箱“346608453@qq.com”,Github 显然不可能会用腾讯邮箱。使用境外 IP 访问则返回了 DigiCert 签发的有效证书,使用的名字都是 GitHub。目前不清楚中间人攻击范围有多大。

  • GitHub被“中介”攻击了?中间人攻击?

    26 日-27 日,国内无法访问 GitHub(从国外访问正常,并且显示证书颁发者不同于国内),同时京东等网站也相继出现同一问题。目前受影响的主要是部分地区用户,中国移动、中国联通、中国电信以及教育网均可复现该问题。        

  • GitHub 遭遇中间人攻击,访问报证书错误

    中间人攻击(英语:Man-in-the-middle attack,缩写:MITM)在密码学和计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的 Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作

  • 微软旗下 GitHub 拟收购 JavaScript 包管理服务 NPM

    已于 2018 年被微软收购的代码共享平台 GitHub 称,该公司计划收购广受欢迎的开源 Javascript 包管理服务 NPM。GitHub CEO 纳特·弗里德曼发布博文称,拥有 130 万个软件包、每月下载量达 750 亿的 NPM 是「世界上最大的开发者生态系统」。弗里德曼承诺,NPM 服务将「永远可用,并永远免费」。

  • 4000万程序员期待已久!GitHub手机APP转正:附下载

    去年 11 月,GitHub首次宣布推出手机APP,并开始在iOS和Android进行Beta测试。本周,GitHub APP转正为v1.0. 0 正式版,面向所有用户提供下载。

  • GitHub 正式发布 iOS / 安卓 App 稳定版:专为触摸屏设计

    现在经过数月的开发,适用于移动设备的 GitHub iOS 和 Android 客户端现已发布稳定版,用户可从 Google Play 或 App Store 下载安装。

  • 藏身代码背后的战疫

    为了防控疫情,许多小区实行封闭管理,居民足不出户,卖菜需求在线上爆发。步步高超市虽有到家业务,但此前模式是以门店为中心,覆盖门店半径三公里内的客户,第三方提供配送。特殊时期,原有模式存在覆盖面窄、配送成本高且运力不足的短板,提升到家业务覆盖范围和效率成为步步高面临的首要难题。

  • openEA流程应用开发平台 开源引领新潮流

    近年来,随着云计算、大数据、人工智能、物联网等新一代信息技术蓬勃发展,中国企业一直在不断增加其在世界开源软件界的贡献度及话语权,许多企业已经完成了从参与者向贡献者、成长者的升级,成为一些开源社区的重要成员、关键成员,发挥了骨干作用,在openEA开源社区里也不例外。生态背景新华三集团深耕行业三十余年,支持运营商、政府、金融、电力、能源、医疗、教育、交通、互联网、制造等百行百业数字化转型实践,产品和解决方

  • 重磅!“神策数据开源社区”官网正式上线!

    近日,神策数据开源社区官网(Sensors Data Open Source)正式上线。神策数据开源社区是一个关于数据采集的开放社区,致力于帮助企业构建数据根基,网址:http://opensource.sensorsdata.cn。立足于重构中国互联网数据根基的愿景,神策数据十分重视基础数据的采集与建模。我们希望将一些成熟的技术与国内外开发者交流与共享,并已于 2019 年 1 月正式成立供IT开发者们分享、使用与交流技术的开源社区——神策数据开源社区(Sensors D

  • 旷视发布开源深度学习框架天元 降低AI开发门槛

    旷视科技今日下午举办线上发布会,正式宣布开源新一代AI生产力平台Brain++的核心深度学习框架旷视天元(MegEngine),成为全球首个将底层框架开源的人工智能企业。

  • 木兰 Mulan PSL 为何能成中国首个国际通用开源协议

    ​2 月 14 日,开源促进会(OSI,Open Source Initiative)批准了来自中国的木兰开源许可证第二版(MulanPSL v2),木兰许可正式成为一个国际化开源软件许可证(或称“协议”)。这意味着中国现在拥有了具有国际通用性、可被任一国际开源基金会或开源社区支持采用,并为任一开源项目提供服务的开源许可证。

  • 2019 年开源软件漏洞增长近 50%,C 语言漏洞占比最高

    ​WhiteSource 通过对 650 多个开发人员进行了调查,并从 NVD(Nartional Vulnerability Database)、安全公告、经过同行评审的漏洞数据库、问题跟踪程序等渠道收集了数据之后,整理发布了一份研究报告。该报告显示,2019 年公开的开源软件漏洞数已激增至 6000 多个,同比增长了近 50%。

  • 腾讯多媒体实验室重磅开源视频质量评估算法DVQA

    近日,腾讯多媒体实验室设计的基于深度学习的全参考视频质量评估算法DVQA在Github上正式开源,该算法模型的性能目前在公开测试数据集上取得业界领先成绩。开源地址:https://github.com/Tencent/DVQA国内镜像地址:https://git.code.tencent.com/Tencent_Open_Source/DVQA(登录后才能访问公开项目)腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像视听时代,音视频应用越来越广泛:直播、短视频、视频节目、音

  • iOS 14 代码显示苹果 iPhone 12 或采用无刘海设计

    据 svetapple.sk 报道,有开发者在 iOS 14 的代码中发现一份疑似 iPhone SIM 卡安装指南,指南的示意图显示 iPhone 12 将采用无刘海设计。

  • iOS 14 代码泄露,外媒提前「发布」了今年的苹果新品

    考虑到最近各种大会宣布取消,看网上爆料的理由好像更充足了一些。根据外媒 9to5Mac 的报道,他们已经获取了泄露的 iOS 14 代码,里面不仅包含下一代 iOS 系统的新功能,还透露了一些苹果新产品的信息。

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议