本文共 3446 字,大约阅读时间需要 11 分钟。
公众号关注 “GitHubDaily”
设为 “星标”,每天带你逛 GitHub!
作者:村中少年,转自 CSDN
现在有越来越多的公司都参与了开源,其背后有各自的目的所在。
本文从多个方面分析各大公司在开源上的投入情况。由于全世界绝大多数的开源项目都有发布到 GitHub 上,因此本文将会基于 GitHub 的数据进行分析。
2019 还没有结束,本文先回顾一下 2018 年的各项指标,从以下几个方面进行分析:2018 哪些主要的公司参与了 GitHub 开源贡献
2018 这些主要的公司分别有多少人参与了 GitHub 开源贡献
2018 这些主要的公司分别参与贡献了多少个开源项目
2018 年这些主要的公司贡献的开源项目中,有哪些是比较有代表性的
2018 年这些主要的公司在的开源项一些代表性的项目中,都有多少人参与
2018 这些主要的公司参与贡献的所有项目累计 star 数量是多少
相信通过以上的这些指标,就能够大致大判断出每个公司在 GitHub 上的贡献情况。
关于如何获取 Github 上所有相关仓库数据,相信看过我一系列分析 GitHub 开源文章的同学都已经知道。当然自己可以写 SQL 语句查询,但是发现 fh 大神已经将这些数据过滤存储到 2018_top_contributors 数据表中。
站在巨人的肩膀上,没有必要再重复的查询,我们直接分析一下该表即可,如下图是我截取的表中包含国内 BAT 三家公司排名的部分数据,作为概览:
当然其编写的 SQL 语句 (Details 部分) 还是有点小复杂,感兴趣的可以自行学习下,具体的 SQL 过滤语句我就不多说的。
原理背景知识
如果你使用过 git 的话,一般会要求你配置用户名和邮箱,做为 commit 提交时候的用户记录。因此可以根据邮箱名统计该用户属于哪个公司。
比如 microsoft.com 可以作为微软公司内部邮箱标识,google.com 可以标识谷歌,amazon.com 可以标识亚马逊,国内例如 alibaba-inc.com 可以标识阿里,baidu.com 可以标识百度。
因为公司参与开源项目也是有目的,有的是未来的一个布局,有的可能仅仅是公司内部的 KPI 考核。
因此以公司邮箱提交的代码往往表示的是这个公司支持的开源,也可以看做该公司的在开源的贡献。但是有的大公司所推出的公共邮箱服务需要注意,往往是以个人名义参与项目时候的用户信息会填写如 gmail.com,outlook.com,yahoo.com,hotmail.com,qq.com,163.com,foxmail.com,126.com 这些公共邮箱,不能作为公司的统计。
主要公司有多少人参与了 GitHub 开源的贡献
下图是 2018 年度公司 GitHub 上贡献人数超过 30 人的前 20 名。
哪些主要的公司参与了 GitHub 开源贡献
可以看到上表一共统计出了 95 个公司,业界知名的公司都有包括,以下是这 95 个公司按照员工投入数量的排名词云图:
1. 如果按照员工数量的排名,2018 自微软员工参与 GitHub 开源的最多,共计 1717 名用户参与了 push 活动。当然还包括谷歌,redhat,ibm 等诸多公司。
2. 可以看到前二十名的公司都有超过 100 人参与了 2018 年年度的 GitHub 开源贡献,说明在开源上各大公司还是投入了相当多的人力。
3. 百度,阿里,腾讯,在 Github 开源中投入了 100 + 的人力,排名也很接近,不排除各家之间暗自竞争。
4. 在我以前的文章中也总是提到伯克利这个学校在所有的教育机构中,github 上的投入排名位居榜首。
这些主要的公司分别参与贡献了多少个开源项目
投入的人力是一方面的指标,参与项目的数量也可以作为一个参考,如下表:
1. 如果按照每个公司参与的项目数量排序的话,谷歌公司共计参与了 1543 个项目,微软参与了 1295 个项目,远远领先于其他公司。
2. dependabot 出现在了前十名,并且员工个数如此至少,基本上平均每个人参与了很多的项目。
3. 如果计算每个项目上各个公司平均投入了多少人力,会发现基本都是 1。也就是说每个项目都是一个人在维护。
但是如果按照每个人平均参与的项目数量进行排名,则会得到下图所示的结果:
可以发现,排名靠前的都是一些不太出名的机构和公司。这个指标是否可以说明一个问题:虽然像 google 这样的大公司参与了很多的开源项目,但是很多的项目可能并没有参与实质性的贡献,可能只是提交了一些注释等方面的解释性信息。
这些主要的公司贡献了哪些比较出名的开源项目
由于每家公司都参与了很多的开源项目,比如微软和谷歌 2018 年度都参与了上千个开源项目,不可能罗列出所有的项目。同时上述分析了,其参与的很多项目有的并不是主要贡献人员。因此需要选取一些比较具有代表性项目。
统计每个公司参与的所有项目 2018 年度 star 数量,用以表征这个项目的火爆程度,并选取 star 数量最多的前三名,如下图:
1. 通常来说这种火热的项目背后都是某个大公司支持的,如果某个公司的员工参与进来,说明该项目对于该公司具有一定的价值。
2. 比如微软 2018 参与的所有项目中,最火的包括了自家的 vscode 以及 TypeScript。
3. google 参与的项目中也有自家的 tensorflow,以及目前主推的 flutter 等,投入人力数量可见其重视程度。
4. rehat 参与的 kubernetes 虽然不是自家的产品,但是 rehat 在 kubernetes 的贡献仅次于其发布者 google,只有两个人倒是出乎意料。
5. FB 的 react 以及 pytorch 都是当下火热的项目,也是其当家开源产品,而且都投入了不少的人力。
6. 其实你会发现一个现象,就是各个公司前三的项目,重合的概率非常的小,说明各公司还都是专注自己的领域。因为一旦一个微软帐号贡献了 tensorflow,那么 top3 中就有 tensorflow,因为该项目的 star 数是很多的。
由于篇幅有限,无法将每个公司参与的具有代表性的开源项目一一列举,我这里面绘制了这 95 家公司每一家所贡献项目中 star 数排名前 3 名的项目词云,并按照 2018 年的 star 数量统一排名,如下图:
可以看到上述词云基本能够反映出时下火热的技术方向,包括可以 flutter、react、tensorflow、pytorch、kubernetes、vscode、node 等项目,其实也是说明了技术的导向基本是这些大公司推动的。
如果按照每个项目各公司参与人数排名,绘制得到的词云图如下:
1. 可以看到很多项目投入的人数基本相差不大,因为投入最多的 edx-platform 项目为 66 人,其他的主流项目基本都在 20+。
2. 投入的人数较多可以说明的是该项目目前还在频繁迭代中已经公司的重视程度。更多内容可以查看 2018_top_contributors 数据表。
2018 这些主要的公司参与贡献的所有项目累计 star 数量是多少?
每家公司参与项目所有累计的 star 数量前 20 如下表:
95 家公司每家公司参与项目在 2018 年度所有累计的 Star 数量排名词云:
1. 因为 star 数量表示的是一个项目的火爆程度,这个排名我觉的可以用来衡量一家公司在开源领域的影响力。
2. 像 google 在 2018 年贡献的所有项目 star 总量为 858566,微软为 418351,FB 为 298144,数量非常之大,是否可以说明这些公司在引领开源。
3. 国内的 BAT 也都排进前 20,说明国内企业的影响力在进一步提高。
综上来说,目前开源领域还是以微软,谷歌,rehat 等公司贡献较多,这些贡献也意味着未来一些领域的话语权。
不论怎么说,还是得感谢这些公司为开源事业做出的贡献,让我们享受到了更多开源的便利,极大减少了开发者重复造轮子的时间。
感谢开源。
---
以上便是今天的分享,觉得内容不错,还请点个在看,谢谢。
推荐阅读:
「GitHub 交流群」已开放
想入群的可在公众号后台回复「入群」
转载地址:http://fapii.baihongyu.com/