写点什么

中国互联网公司开源项目调研报告

  • 2019-04-01
  • 本文字数:3138 字

    阅读完需:约 10 分钟

中国互联网公司开源项目调研报告

近年来,开源技术得到越来越多的重视,微软收购 GitHub、IBM 收购红帽,都表明了开源的价值。国内公司也越来越多的参与开源,加入开源基金会/贡献开源项目。但是,它们到底做得如何呢?为此 InfoQ 统计了国内在 GitHub 上较活跃的 7 家一线互联网公司的 50 多个账号的 2800 多个项目,为大家呈现一部分答案。

一、公司及账号

本次参与统计的公司包括百度、阿里、腾讯、华为、美团、360、小米,一共 7 家公司,在最开始的时候,我们选定的是 10 家公司,它们都是国内互联网的代表型企业,但由于其他 3 家公司或没有统一管理自己的开源项目,又或是开源项目太少,没有分析的价值,所以我们就删去了。


在搜集这 7 家公司的开源账号的过程中,我们尽量收集了网络上的信息以避免遗漏,不过由于统计口径不一,有些公司只承认在 GitHub 公司主体账号旗下的项目,导致团队账号可能难以收集全面。但是我们又认为有必要收集以团队身份出现的公司账号,它们的行为也代表公司的一部分,公司也应该将这些账号视为公司开源战略的一部分,进行统一治理。


具体如下:



注:饿了么和优酷已经被阿里收购,故归入阿里旗下,下文分析的数据都是基于非 fork 的项目。

二、TOP10 开源项目

Star 数最多的项目 TOP10


Star 数越多,表示该项目越受欢迎,在 Star 数 TOP 10 的开源项目中,阿里有 6 个项目,百度有 1 个项目,腾讯有 2 个项目,美团有 1 个。


蚂蚁金服的 ant-design 以 4.3 万 star 数领跑,即使放在整个中国范围内,它也是最受欢迎的开源项目之一。而计算公司的项目数方面,阿里以 6 个遥遥领先,说明阿里在开源方面受到开发者的广泛认可。


在领域方面,star 数最多的项目里前端相关的项目有 7 个,包揽前三,一方面说明国内公司在前端开源方面做的最好,另一方面也是因为前端项目在 GitHub 上普遍更受欢迎。

贡献者最多的项目 TOP10


注:这里面的贡献者只包含拥有 GitHub 账号的人,邮箱未注册 GitHub 的开发者未显示在内


Contributor 数越多,表示项目越开放,在贡献者数排名前十的项目中,阿里令人吃惊的占据了 8 个席位,几乎全部包揽,百度则占据剩下两个。阿里的 ant-design 项目再次名列榜首,包括衍生项目 ant-design-pro 也榜上有名。


贡献者数量是体现一个项目是否开放的重要指标之一。项目越开放,它就会接纳更多来自社区的贡献。而由公司推出的开源项目尤其需要关注这一指标,因为有些公司开源项目只是将源码开放出来,但具体开发和路线演进并不允许它人染指。


我们可以看到,阿里已经意识到这个问题并努力做出了一些改进,我们也期待有更多国内公司的开源项目能够拥抱社区。

Commits 数最多的项目 TOP10


commits 提交数越多,表明项目越复杂,开发周期较长,协作者数量更多。在 commits 数前十中,阿里占了 5 个,百度占了 3 个,腾讯和美团各有一个。


这里笔者发现一个现象:部分大公司会 fork 一些知名的第三方项目并创建分支,但并未体现在 github 的 fork 关系里,其中以阿里居多,如 AliOS-nodejs 项目。笔者认为,这种行为并不值得鼓励。


在 Top10 项目中,百度的 Paddle 和 Apollo 项目名列前茅,说明百度声称的在 AI 方面基于开源理念来打造项目和产品,兑现了它自己的承诺,值得尊重。


另外我们发现,这 10 个项目有 4 个都是 Apache 基金会项目(Flink 由阿里收购而来),说明 Apache 基金会在开源方面名不虚传,也说明国内公司的确是把最好的项目捐献给了 Apache 基金会。

三、公司开源情况

哪些账号开源最厉害


在开源账号方面,各大公司的官方账号并不是拥有开源项目最多的账号,这一桂冠被阿里的 Kissy gallery 团队摘取,其原因是这个账号是 Kissy 前端框架的组件库账号。遗憾的是,Kissy 项目事实上已经死亡,其活跃期在 2015 年之前,在那个时代,Kissy 团队可以说是国内最早利用 GitHub 的先驱之一,它们固然值得尊重,但阿里是不是应该对这些账号做一些清理呢?

项目整体 star 数知多少


我们将所有公司的项目 Star 数做了一个分布图,我们发现,腾讯开源项目虽然少,仅有 130 个,但是质量高,Star 数 100 以上的项目有 97 个,占总数的三分之二以上;而阿里的项目虽多,Star 数 100 以上的项目也只有 237 个。这说明腾讯在对待开源时更为谨慎,推出的项目都是对开发者有帮助的高质量项目。


这里面最极端的公司当属华为,它虽然拥有 218 个非 fork 的项目数,但 Star 数 100 以上的项目仅有 14 个。其中的原因,一方面是华为多以贡献者的身份参与第三方的底层项目,如 Linux、Kubernetes 等,这些在统计中未能体现;另一方面,也说明华为在自有开源项目做得还不够,其表现与华为 IT 巨头的身份并不匹配。

各个公司强在哪些领域

我们统计了各个公司 Star 数 TOP10 的项目,并对其按领域分类。我们发现:


  • 大前端(前端和移动开发)项目最多,在阿里、百度、360、美团中前 10 个几乎都占了一半。腾讯是最夸张的,前 10 个项目里竟然有 9 个是大前端领域的。

  • 百度有 4 个是 AI 领域项目,在众多公司中别树一帜,包括 Paddle、Apollo 等都比较受欢迎。

  • 华为虽然项目少,但基本全是基础设施领域的项目,如 ServiceComb、CarbonData、LiteOS 等。

  • 小米有几个操作系统相关的项目较受欢迎。

哪家公司开源最活跃


最近更新时间可以表明项目的活跃程度,如果项目在过去一年都没有更新,说明很可能已经不再维护。


这里,我们统计了最近更新时间在三个月内的所有项目,发现这些项目中阿里的项目数是最多的,一共有 269 个,占了 48%,其次是百度,有 98 个,占了 18%。



GitHub 的 issue 区为开发者求助和协作交流提供了非常好的平台,而公司对项目的维护程度可以从公司解决掉的 issue 里窥知一二。


这里我们按公司分别统计了它们历史上解决的 issue 数(即 close 掉的 issue 数),其中阿里解决了超过 6 万个 issue,比之后的公司解决的加起来还要多,说明阿里对开源项目还是挺上心的,并不是传闻中的“开源后不管”。


排名靠后的公司在这一方面还有待努力。

总结:中国公司开源现状

上面的数据给我们提供了一些有趣的视角来研究国内开源的现状,其中,一些数据验证了我们之前的看法,比如大部分公司的优秀开源项目都以前端居多,因为前端群体在社区更活跃,前端代码一般也不太涉密,因此公司在心态上更开放一些。


而另一方面,有些数据出乎我们的意料之外,比如阿里的数据几乎在所有类别里都名列第一,有时甚至是其它公司之和,并且在社区化/开放等方面也做的不错。


腾讯在自有开源项目上数量偏少,这也与公司过去并不重视开源有关,近年来,腾讯积极地靠近各个开源基金会,也开源了一些高质量项目,收获了开发者的口碑。


华为在自有开源方面显得有些保守,它的发力点更多在参与社区开源上,自家开源的很多项目多为操作系统和基础架构相关。


而我们还可以看到,个别人和团队对整个公司的开源能产生重大影响,比如阿里的玉伯不仅是 Kissy 的创始人,也带领团队开发和维护 ant-design,撑起了阿里开源的大旗;百度有 echarts 团队;腾讯有 Alloyteam;360 有奇舞团等。


不好的方面则是,这些最优秀的中国互联网公司,在底层关键项目上和国外还是存在较大差距,如 ant-design/element 等,只是 React、Vue 等前端框架的组件库,是其生态系统的一部分,而自己作为生态核心的项目在国内极少,因此,国内开源只是看着热闹,在实际作用方面,和国外差距极大。


另外,国内公司对于 GitHub 还没有做到物尽其用,在开源治理上还有所欠缺,我们看到有大量的 fork 项目,有大量的空项目,这些项目应该第一时间清理。对于不再维护的项目,GitHub 也提供了归档功能,国内公司应该善加利用。


注:


  1. 这里选取的账号为公司账号/项目账号,或部门/团队账号,非个人账号。

  2. 部分项目因捐献给 Apache 基金会有重合已剔除,并只保留 Apache 里的数据。

  3. 数据统计截至日期为 2019 年 3 月 22 日,其后数据未计入。


2019-04-01 10:346828
用户头像

发布了 164 篇内容, 共 113.5 次阅读, 收获喜欢 392 次。

关注

评论 1 条评论

发布
用户头像
国内开源社区的治理水平亟待提高
2019-12-16 16:15
回复
没有更多了
发现更多内容

云原生平台 Kyma 上创建的 Lambda Function 的技术实现细节介绍

汪子熙

Kubernetes 云原生 SAP Kyma 5月月更

为何架构设计能力难以提升?- 作业

阿拉阿拉幽幽

关于延期举办第六届世界智能大会的通知

InfoQ 天津

数字化时代,企业知识管理软件怎么选

小炮

企业知识管理

JVM进阶(十八)——初识Class文件

No Silver Bullet

JVM class文件 5月月更

阿里云首家通过《可信云·云成本优化工具能力要求》评估,云原生企业 IT 成本治理方案助力企业 FinOps 落地

阿里巴巴云原生

阿里云 云原生 工具

LabVIEW仪器控制:智能直流电源(科睿源KA3003)

不脱发的程序猿

串口通信 工业自动化 直流电源控制软件 LabVIEW仪器控制

LabVIEW仪器控制:智能显示屏(数码管显示屏)

不脱发的程序猿

串口通信 工业自动化 LabVIEW仪器控制 数码管显示屏软件 数码管显示屏

Python写实用小工具-实现图片转字符画

okokabcd

Python

MASA Auth - 权限设计

MASA技术团队

C# .net 微软 权限

记一个 Harvester SNAT 案例

Rancher

Kubernetes k8s rancher Harvester

存储系统如何适配 Hadoop?

焱融科技

hadoop 存储 文件存储

下载Spring4.1.x源码并用IntelliJ IDEA打开

程序员欣宸

Java 5月月更

Android 子线程 UI 操作真的不可以?

vivo互联网技术

android 线程 UI

龙蜥社区第八次运营委员会会议顺利召开

OpenAnolis小助手

开源 生态 龙蜥社区 理事单位 运营委员会

大咖说*菜鸟|物流行业重大战略机遇期已悄然到来

大咖说

互联网 物流 降本增效 菜鸟 实体经济

我的编程学习经历

留乘船

学习

【LeetCode】单值二叉树Java题解

Albert

LeetCode 5月月更

烫烫屯屯锟斤拷��

博文视点Broadview

Python爬虫网页元素定位术,就在这篇博客中

梦想橡皮擦

5月月更

MQTT协议连接阿里云物联网服务器​

DS小龙哥

5月月更

OpenHarmony 3.1 Release版本关键特性解析——构建OpenHarmony窗口框架

OpenHarmony开发者

OpenHarmony OpenHarmony 3.1 Release 窗口框架

Amazon Kinesis Data Streams 实现跨账户应用日志收集

亚马逊云科技 (Amazon Web Services)

日志 Data

java开发培训任务调度框架Quartz的用法

@零度

JAVA开发

王莉:将开发文档英文化和本地化,我们努力让OpenHarmony走向全球

OpenHarmony开发者

开发文档 OpenHarmony OpenHarmony 3.1 Release

融云漫话:没有一个人躲得过“视频会议”

融云 RongCloud

云原生技术新版图——无服务器(Serverless)数据库

亚马逊云科技 (Amazon Web Services)

数据库 Serverless 云原生

使用 Amazon SageMaker 为新用户提供实时音乐推荐

亚马逊云科技 (Amazon Web Services)

Amazon 音乐 实时推送

解放双手!推荐一款 GitHub 星标 8.2k+的命令行软件管理器,非常酷炫!

沉默王二

GitHub

战码先锋直播预告丨参与文档贡献,开启OpenHarmony社区贡献之旅

OpenHarmony开发者

OpenHarmony OpenHarmony 3.1 Release 社区贡献

云原生技术应用情况报告重磅发布

行云创新

云计算 云原生 开发 报告 行业

中国互联网公司开源项目调研报告_开源_徐川_InfoQ精选文章