写点什么

2020 中国开源年度报告:中国开源力量崛起,开源世界分裂趋势初现

  • 2021-01-20
  • 本文字数:4575 字

    阅读完需:约 15 分钟

2020中国开源年度报告:中国开源力量崛起,开源世界分裂趋势初现

2021 年 1 月 20 日,开源社正式发布《2020 中国开源年度报告》。在往年问卷调查的基础上,今年的报告增加了 GitHub 和 Gitee 两大开源平台的数据分析篇,结合数据分析手段和调查报告等多种形式,绘制了一份 2020 年中国开源世界的地图。


作为开源社的长期合作伙伴和中国开源运动的推动者之一,InfoQ 将该报告部分重点内容摘录如下,以飨读者。点击此链接可查看完整报告。

前言

回看 2020 年,可以称之为:世界剧变之始。很多朋友在去年,甚至“每一天都在亲历历史,每一天都是活久见!”新冠疫情与中美贸易战,在同一年加剧。而因为疫情和贸易战,世界正在加速发生变化。


在这样的历史大背景下,我们在开源界也发现了以下三个趋势:

1. 开源大发展以及由实向虚进发的趋势

从各种数据,以及我们自己的感觉都能发现:全球开源都出现一个大发展的趋势。GitHub 的活跃代码仓库与活跃用户数在高速增长(35.3% / 21.2%);Gitee 的代码仓库与用户数在以更加惊人的速度增长(192% / 162%)。


一方面,是开源这么多年一直持续的上升势头。而另一方面,则是我们的一个猜测:疫情以来,越来越多的人开始远程办公,事实上促进了更多的人有机会“斜杠化”,也就是在一台电脑面前方便地切换多种身份,以异步的方式处理多种事务,从而增加了开发者参与开源的时间和机会。


当然,同样由于远程办公,虚拟世界在人类生活中的占比,变得更大了。这样是否更好,还会引发哪些问题?作为站在隧道口的人类,其实是猜不透的。

2. 中国开源崛起以及开源世界分裂的趋势

随着越来越多中国开源项目的影响力不断增加、木兰协议的推出、开放原子基金会的成立,Gitee 的超高速增长,CODE China 的新发布,我们已经可以确信,2020 年是中国开源的崛起之年。接下来阅读报告的朋友们,应该会看到很多确切的证据。


但是,另一个值得注意的现象,也可以从下面的数据里看出来。在 GitHub 上最活跃的中国开源项目,与 Gitee 上最活跃的开源项目之间,完全没有重叠。


随着 Gitee 的继续高速发展,可以大胆预测,今后会有越来越多高质量的中国开源项目,选择在 Gitee 上开源。曾经有一位朋友提到的 “One World, Two Systems”,将会逐渐变成现实。


如果中国的开源,以一种与世界隔离的方式 “崛起”,这并不是我们希望看到的未来。

3. 开源向善以及我们尚未做好准备

疫情爆发以来,众多的开源人奉献自己的时间、精力、技术和智慧,投入到一个一个的抗疫相关的开源项目之中,也因此诞生了诸多面向医学、防疫、公益、救援的开源组织和开源项目。其中 wuhan2020 就是典型的代表。


因此,在 2020 年的中国开源年会筹办期间,我们毫不犹豫的选择了 “开源向善(Open Source for Good)”作为年会的主题,也获得了众多讲师、参会者与赞助厂商的一致认同。


但是,接下来应该怎么发展呢?为了抗击疫情而凝聚起来的人,创造的项目,积累的经验,总结的教训,应该如何“整理、封装、模块化”,并为了今后的各种意外,做好准备呢?这些都是值得长期思考并改进的领域。


作为一份力图完整、客观、全面、丰富的报告,值得探讨的问题当然不止上述这些,也欢迎朋友们阅读下面的报告,并随时与我们交流。

问卷篇

2016 年初,开源社发布了《2015 年中国开源社区参会调查报告》,随后的几年中,持续发布了开发者调查报告,旨在从多种维度呈现国内的开源发展情况。今年我们再次启程,结合数据分析手段和调查报告等多种形式,绘制一份 2020 年中国开源世界的地图。


这份问卷是每年中国开源年报的重要一环,不基于调研的分析报告不过是纸上谈兵。在往年的基础上,我们参考了其他现存的主流开发者问卷内容,并加入了一些新的视角。基于 2020 年 COVID-19 这个不容忽视的大背景,这份调查问卷进一步将视角发散到开源世界的线上协作,以及开源能够为世界带来什么等主题。


通过近 60 项左右问题的统计调查与分析,我们希望能够还原出当前中国开源社区的真实现状,从而为开源的后来人提供权威的参考。

  • 调查对象:覆盖开发者、社区成员、贡献者、学生、政府企业管理人员

  • 调查内容:主要涵盖个人信息、工作状况、开源社区以及开发者技术

  • 调查方法:以在线问卷方式搜集样本和数据,交叉对比法分析数据

  • 推广方法:线上社交媒体、博客、开源社、开源中国网站

  • 问题数量:59

  • 问题类型:单选、多选、开放性

  • 样本量:236


由于疫情,今年的问卷全部通过线上的方式传播,因此收集到的样本量相比往年较少,但仍旧能够管中窥豹,观察到中国开源世界的悄然变化。通过分析 2020 年的统计数据,并对比往年数据和其它一些公开发布的统计报告,我们有如下一些重要发现:

  • 开源参与者的主力依旧是 20-39 岁人群,相比去年比例仍在上升,而在开源社区的年龄分布中,20-30 岁人群占据了 64%,说明开发者的年龄仍在趋于年轻化;

  • 相较于 2019 年,今年参与调研的开发者中,还未工作的人群占了绝大部分,从参与者从事领域和职位分布也可以看出,这些“还未工作”人群多数指向学生群体,这和当前社会普遍追求更高学历深造有关,和本次问卷传播形式有关,但是同时也能说明开源在教育领域取得了不错的进展;

  • 开发者所从事的技术方向仍以前后端为主,其中后端开发占比约 31%,其次是 Web 前端、AI 以及大数据分析方向,占比分别为 10%、9%、9%,非技术人员以及其他行业的从业者占比均为 7%,说明开源已经越来越受到社会各界的关注;

  • 参与开源的形式由 2019 年以代码和测试为主转变为以代码和文档为主,社区和项目正在意识到文档的重要性,更多开源贡献者投入到了文档撰写中;

  • 开源活动的参与频率相较往年有所上升,这与国内愈发繁荣的开源氛围和逐渐丰富的开源活动也有关系。81% 的开发者认为开源活动对促进和推动开源社区至关重要。而对于更倾向于线上还是线下的会议,结果竟惊人地持平;

  • 在 2020 年 COVID-19 这个大背景下,各行各业都不可避免受到了冲击和影响;82% 的人认为疫情对于参加开源社区的活动产生了影响,但也具有推动作用,11% 的人认为毫无影响,7% 的人认为疫情的负面影响大于正面影响;

  • 在在线文档协作工具的使用上,石墨文档以黑马的形式由第三名一跃成为第一名,压倒了 wiki 和 Google Doc,国内正在涌现出一批优秀的协作工具,并越来越为大家认可;

  • 2020 年 9 月 9 日,中国首个开源软件基金会「开放原子开源基金会(OpenAtom Foundation)」官方正式对外发声,大家对此抱有多重期望:推广开源的理念,开源文化教育和社区建设,建立开源生态体系,对开源项目进行早期的孵化和扶持,帮助中国开源社区进行资源的整合和优化,并接轨国际开源社区。

GitHub 数据篇

本部分内容采用 GitHub 全域事件日志进行统计分析(2020 年共计 8.74 亿条),相较 2019 年的 5.46 亿条增长约 60%。并对分析出的部分项目进行人工标注,挑选出中国的个人开发者和企业组织,同时构建了科学合理的数学模型进行分析。


在开发者活跃度与项目活跃度的定义下,本次统计得到 2020 年总活跃项目数量约 5,373 万个,相较 2019 年的约 3,972 万增长约 35.3%;2020 年 GitHub 总开发者数为 5,600 多万,总活跃开发者数量约 1,446 万,相较 2019 年的约 1,19 万增加了约 21.2%

世界开源 Top10 项目


活跃度最高的项目是来自谷歌的前端跨平台开发框架 flutter/flutter,此外,源于谷歌的深度学习框架 tensorflow/tensorflow,容器编排系统 kubernetes/kubernetes 也分别位于第 5 名和第 6 名,这说明了谷歌在开源上的努力和影响力获得了业内的认可。


微软的跨平台代码编辑器 microsoft/vscode 和微软使用开源的方式来建设其 Azure 云平台的项目 MicrosoftDocs/azure-docs 分别位于第二名和第三名,表明微软在开源上的努力获得了程序员的认可。


microsoft/vscode 和 DefinitelyTyped/DefinitelyTyped 均使用 TypeScript 作为主要的编程语言,这可能与 TypeScript 的受欢迎程度急剧攀升有关。

中国开源 Top50 项目


Top50 列表中,从项目活跃度来看,第 1 名与第 50 名的项目活跃度相差超过 10 倍,说明中国开源项目之间的差距较大。


从这个列表中,我们发现,阿里在开源领域中的成绩显著。Top10 项目中上榜的项目有 4 个,除了蚂蚁金服采用 React 封装的一套组件库 ant-design/ant-design,基于 Ant Design 框架搭建的中后台管理控制台的脚手架 ant-design/ant-design-pro 和致力于配置和管理微服务的特性集 alibaba/nacos 外,饿了么(已被阿里收购)的开源项目 ElmFE/element 作为前端组件,表现也十分突出。


PingCAP 在开源领域的表现也是非常地亮眼。Top50 项目中上榜的项目有 6 个,包括由其自主设计、研发的开源分布式关系型数据库 pingcap/tidb,分布式事务型的键值数据库 tikv/tikv,文档项目 pingcap/docs-cn、pingcap/docs 等,表明 PingCAP 很重视项目文档的建设。值得关注的项目是 pingcap/tidb,该项目的 issue_comment,open_issue,pull_review_comment,merge_pull 等属性是 50 个项目中最高的,达到惊人的 52,871 和 10,981,相对比之下,issue_comment 属性下排名第二的 ant-design/ant-design 只有它的 61.5% 左右。而其 480 的开发者参与数量,与其他前端项目相较甚远,但却有着如此高的活跃度,也可以看出其社区的活跃程度。


百度在人工智能领域的表现非常不错,其深度学习平台 PaddlePaddle 占据了 6 个项目,分别是核心框架 Paddle 以及相关工具库、扩展版本和模型库 Models;此外开放自动驾驶平台 ApolloAuto/apollo 也榜上有名。


中国的 Top50 项目列表中,包括阿里的 Ant-Design 组件库,京东基于 React 前端框架的开发框架 taro,由饿了么(已被阿里收购)前端团队开源的 Vue UI 组件库 Element 等等,这说明在国内,前端群体在开源社区更为活跃;另外前端代码一般也不太涉密,因此公司在心态上更开放一些。不过这其中也有一点需要引起注意,上榜的前端项目组件库居多,但是缺少核心项目。


属于人工智能领域的项目 PaddlePaddle/Paddle、apache/incubator-tvm、Tencent/ncnn、alibaba/MNN 均在中国 Top50 项目列表中占据一席之地,这说明了国内各大公司都在大力发展人工智能领域。

Gitee 数据篇

2020 年总体项目趋势包括:

  • 2020 年 Gitee 上托管的代码仓库超过了 1500 万

  • Gitee 上的开源项目数量相比 2019 年提升 192%,是 2013-2018 年 Gitee 上开源项目的总和。

  • 2020 年 Gitee Star 数破千项目的增长率提升 132%,是 2019 年 Star 数破千项目总量的 1.53 倍。


2020 年总体用户趋势包括:

  • 2020 年 Gitee 用户总量超过 600 万

  • 2020 年在 Gitee 参与开源的用户数增长了 162%,其中 38% 是首次参与开源的用户。

总体语言趋势


虽然占比较去年(50%)有不小的下跌, 但 Java 依旧是使用最多的语言(38%),前五名的语言较去年变化较小,PHP 超越 Python 成为了第三位。


值得一提的是移动端主力语言的占比在 2020 年有较大提升,随着疫情的到来,移动开发似乎又重新被开发者们所关注,跨平台框架在 2020 年的流行也为移动开发注入了新的活力。

新兴影响力项目


新兴影响力项目即 2020 年在 Gitee 获得 Star 数最多的项目。表格中的项目除了 asyncTool 是 2019 年底新建的项目外,其余五个项目均为 2020 年 3-4 月新建。从零开始的开源项目能够在三个季度里获得较高的关注,一方面体现了开源作者们技术水平的精进,越来越多的好项目进入了大家的视野,另一方面也体现出国内关注开源的开发者越来越多,并愿意对优秀的新项目给予肯定。


查看完整报告:https://kaiyuanshe.cn/document/china-os-report-2020/

2021-01-20 16:125581

评论

发布
暂无评论
发现更多内容

Nginx Http模块是如何处理请求的?

Ethan

ngnix

Python|「函数」递归与迭代

AXYZdong

Python 7月月更

iOS中SEL类型

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

Flutter 实现爱心三连动画效果

岛上码农

flutter ios 安卓 移动端开发 7月月更

Spring Cloud源码分析之Eureka篇第六章:服务注册

程序员欣宸

Java SpringCloud 7月月更

QT 实现文件夹的删除

小肉球

qt 7月月更

给自己点鸡汤吧

沃德

程序员 心灵鸡汤 7月月更

Nginx 部署的虚拟主机如何使用 Let's Encrypt 来进行加密 https

HoneyMoose

模块6(拆分电商系统为微服务)

Geek_701557

注入攻击

沃德

程序员 7月月更

Qt|实现边加载数据边显示页面

中国好公民st

qt 7月月更

Java多线程案例之线程池

未见花闻

7月月更

ArrayBlockingQueue源码分析-构造方法

zarmnosaj

7月月更

双目立体匹配步骤

秃头小苏

7月月更 双目立体匹配

java零基础入门-抽象类

喵手

Java 7月月更

2000字教你如何玩转Linux man命令,隐藏技能非常nice

wljslmz

Linux 运维 man 7月月更

SAP Fiori 注解 @ObjectModel.readOnly工作原理解析

汪子熙

SAP abap Fiori SAP UI5 7月月更

Android 小巧技-不用图片框架,实现加载类似微博超长图片的手法

芝麻粒儿

android 7月月更

你以为,设计一个RPC框架很简单?应该从哪入手,深入剖析? Java架构新资讯

了不起的程序猿

Java RPC java程序员 java 编程

NumPy 与 Python 内置列表计算标准差的区别

宇宙之一粟

Numpy 7月月更

spark调优(五):提交任务优化

怀瑾握瑜的嘉与嘉

7月月更

内部排序——选择排序

乔乔

7月月更

学一招,docker自启动以及容器自启动的解决方案

麦洛

Docker docker image

LeetCode-136. 只出现一次的数字(java)

bug菌

Leet Code 7月月更

ORACLE进阶(十)start with connect by 实现递归查询

No Silver Bullet

oracle 递归 7月月更

跨域的问题终于能解决了

是乃德也是Ned

JavaScript ajax 前端 7月月更

iOS中方法和函数的区别

NewBoy

前端 移动端 iOS 知识体系

【LeetCode】玩筹码Java题解

Albert

LeetCode 7月月更

【这款插件在IntelliJ IDEA中,可以大幅提升工作效率,强烈推荐!】

了不起的程序猿

Java java程序员 实用工具

MySQL灵魂16问,你能撑到第几问?

了不起的程序猿

Java MySQL 面试题 java程序员

基于STM32+华为云IOT设计的智能家居控制系统_语音+环境检测

DS小龙哥

7月月更

2020中国开源年度报告:中国开源力量崛起,开源世界分裂趋势初现_开源_InfoQ编辑部_InfoQ精选文章