Google、微软、阿里、腾讯、百度这些大公司在GitHub上开源投入排名分析 | CSDN原力计划...
扫码参与CSDN“原力计划”
现在有越来越多的公司都参与了开源,其背后有各自的目的所在,姑且不予讨论。本文是从多个方面分析各大公司在开源上的投入情况。由于全世界绝大多数的开源项目都有发布到Github上,因此本文将会基于GitHub的数据进行分析。2019还没有结束,本文先回顾一下2018年的各项指标,从以下几个方面进行分析:
2018哪些主要的公司参与了GitHub开源贡献
2018这些主要的公司分别有多少人参与了GitHub开源贡献
2018这些主要的公司分别参与贡献了多少个开源项目
2018年这些主要的公司贡献的开源项目中,有哪些是比较有代表性的
2018年这些主要的公司在的开源项一些代表性的项目中,都有多少人参与
2018这些主要的公司参与贡献的所有项目累计star数量是多少
相信通过以上的这些指标,就能够大致大判断出每个公司在GitHub上的贡献情况。
OK,关于如何获取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等公司贡献较多,这些贡献也意味着未来一些领域的话语权。
技术的道路一个人走着极为艰难?
一身的本领得不施展?
优质的文章得不到曝光?
别担心,
即刻起,CSDN 将为你带来创新创造创变展现的大舞台,
扫描下方二维码,欢迎加入 CSDN 「原力计划」!
◆
精彩推荐
◆
开幕倒计时15天|2019 中国大数据技术大会(BDTC)即将震撼来袭!豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读。6.6 折票限时特惠(立减1400元),学生票仅 599 元!
用Go重构C语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
从基本组件到结构创新,67页论文解读深度卷积神经网络架构
MobileNets进化史
假如有人把支付宝存储服务器炸了
小米 9 年,雷军开启 AIoT 与 5G 超级互联网时代
揭秘支撑双 11 买买买背后的硬核黑科技
智链万源CEO董宁:企业数字化建设迫在眉睫 | 链人物
他的公司1年令比特币暴跌数次,上榜福布斯捐10亿美元的跨界传奇
你点的每个“在看”,我都认真当成了AI
相关文章:

jquery源码解析:each,makeArray,merge,grep,map详解
jQuery的工具方法,其实就是静态方法,源码里面就是通过extend方法,把这些工具方法添加给jQuery构造函数的。 jQuery.extend({ ...... each: function( obj, callback, args ) { //$.each(arr , function(i,value){}),第三个参数用于…

swift实现提示框第三方库:MBProgressHUD
GitHud的下载地址是:https://github.com/jdg/MBProgressHUD/ 下载完成后,将MBProgressHUD.h和MBProgressHUD.m拖入已经新建好的Swift项目。因为使用的swift语言,所以拖入项目的时候会提示是否新建一个桥接objective-c与swift的文件ÿ…
这段Python代码让程序员赚300W,公司已确认!网友:神操作!
Python到底还能给人多少惊喜?笔者最近看到了这两天关于Python最热门的话题,关于《地产大佬潘石屹学Python的原因》,结果被这个回答惊到了:来源:知乎 https://www.zhihu.com/question/355880221笔者翻了翻那些回答&…

FFmpeg中可执行文件ffmpeg用法汇总
从https://ffbinaries.com/downloads 下载最新的4.1版本的Windows 64位FFmpeg,FFmpeg是一个快速的音频/视频转换工具,FFmpeg可以作为一个命令行程序单独使用。 通过执行以下命令将FFmpeg信息重定位到ffmpeg_help.txt文件中便于查看,其内容如…

下载Ext JS 5.1 gpl版本的方法
先进入官网:http://www.sencha.com然后在导航的Products中选择Sencha Ext JS,会看到以下页面:这时候不要单击Download按钮,而是要单击导航中的DETAILS,页面切换后,就可在底部看到GPL版本的下载按钮了&#…

对MBProgressHUD进行封装并精简使用
几个效果图: 以下源码是MBProgressHUD支持最新的iOS8的版本,没有任何的警告信息 MBProgressHUD.h 与 MBProgressHUD.m MBProgressHUD.hMBProgressHUD.m以下是本人在MBProgressHUD基础上封装的类,觉得部分的使用基于block ShowHUD.h 与 Show…

基于Hash的消息认证码HMAC简介及在OpenSSL中使用举例
HMAC(Hash-based Message Authentication Code):基于Hash的消息认证码,是一种通过特别计算方式之后产生的消息认证码(MAC),使用密码散列函数,同时结合一个加密密钥。它可以用来保证数据的完整性,同时可以用来作某个消息…

英特尔发布oneAPI软件计划及beta产品,面向异构计算提供统一可扩展的编程模型
近日,在2019年超级计算大会上,英特尔发布了一项全新软件行业计划oneAPI,助力充分释放高性能计算与人工智能技术融合时代多架构计算的潜力,同时发布了一个oneAPI beta产品。 英特尔oneAPI行业计划,为跨多种包括CPU、GP…

Mac下配置Maven
1.Java环境变量设置就不说。 但是配置Maven需要检查下Java环境变量的设置。需要检查JAVA_HOME环境变量以及Java命令 wanyakundeMacBook-Pro:Library wanyakun$ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home wanyakundeMacBook-Pro:Librar…

UIAlertAction的用法
let alertController UIAlertController(title:"系统提示", message:"您确定要退出程序吗?", preferredStyle: .alert) let cancelAction UIAlertAction(title:"取消", style: .cancel, handler:nil) let okAction UIAlertAction(tit…

在Windows和Linux上编译gRPC源码操作步骤(C++)
gRPC最新发布版本为v1.23.0,下面以此版本为例说明在Windows和Linux下编译过程。 Windows7/10 vs2103编译gRPC源码操作步骤: 1. 需要本机已安装Git、CMake、Perl、Go、yasm; 2. 依次执行如下命令: git clone https://github.co…
这些算法工程师,他们真的是太难了!
现在的算法工程师真的是太难了!要让AI会看人眼都分辨不清的医疗影像数据又不够,还得用前沿技术好不容易学会看片,还要让AI会分析病理赋予AI诊断疾病的使命然后几十种模型,N次计算只给一张显卡Boss就问:你打算怎么做&am…

Java 汉子转拼音
1. 引入: pinyin4j-1.1.0 包; http://pan.baidu.com/s/1eQ8a874 2. 转换; private static String ChineseToPinyin(String name){String pinyinName"";char[] nameChar name.toCharArray(); HanyuPinyinOutputFormat defaultFormat new HanyuPinyinOutputFormat()…

Swift - 使用Alamofire通过HTTPS进行网络请求,及证书的使用
(本文代码已升级至Swift3) 我原来写过一篇文章介绍如何使用证书通过SSL/TLS方式进行网络请求(Swift - 使用URLSession通过HTTPS进行网络请求,及证书的使用),当时用的是 URLSession。本文介绍如何使用 Alam…

gRPC简介及简单使用(C++)
gRPC是一个现代的、开源的、高性能远程过程调用(RPC)框架,可以在任何平台运行。gRPC使客户端和服务器端应用程序能够透明地进行通信,并简化了连接系统的构建。gRPC支持的语言包括C、Ruby、Python、Java、Go等。 gRPC默认使用Google的Protocol Buffers&a…
YC中国被撤,陆奇独立运营个人新品牌「奇绩创坛」
整理 | Jane出品 | AI科技大本营(ID:rgznai100)近日,Y Combinator(以下简称 YC) 发布消息称,YC 将撤回 YC 中国业务与运营,这一品牌也将停止使用,YC的战略布局将调整重新…

shell 脚本逐行读取多个文件,并逐行对应
#!/bin/bashfor i in seq 448doaaased -n "$i"p num.txtbbbsed -n "$i"p text.txt/root/cooper/sms.pl $aaa $bbbdonenum.txt 记录了348个号码text.txt中记录了348个字段效果是取num.txt中第一行作为第一行参数 取text.txt中第一行作为第二个参数num.txt要…

iOS常用知识点1
多线程、特别是NSOperation 和 GCD 的内部原理。 运行时机制的原理和运用场景。 SDWebImage的原理。实现机制。如何解决TableView卡的问题。 block和代理的,通知的区别。block的用法需要注意些什么。 strong,weak,retain,assign&a…
美团BERT的探索和实践 | CSDN原力计划
扫码参与CSDN“原力计划”作者 | 杨扬 佳昊 金刚等来源 | CSDN原力计划作品*点击阅读原文,查看美团技术团队更多干货文章。背景2018年,自然语言处理(Natural Language Processing,NLP)领域最激动人心的进展莫过于预训练…

程序员的自我修养--链接、装载与库笔记:可执行文件的装载与进程
可执行文件只有装载到内存以后才能被CPU执行。 1. 进程虚拟地址空间 程序和进程有什么区别:程序(或者狭义上讲可执行文件)是一个静态的概念,它就是一些预先编译好的指令和数据集合的一个文件;进程则是一个动态的概念,它是程序运…

JDBC实例--工具类升级,使用Apache DBCP连接池重构DBUtility,让连接数据库更有效,更安全...
直接使用JDBC访问数据库时,需要避免以下隐患: 1. 每一次数据操作请求都需要建立数据库连接、打开连接、存取数据和关闭连接等步骤。而建立和打开数据库连接是一件既耗资源又费时的过程,如果频繁发生这种数据库操作,势必会使系统性能下降。 2.…

程序员的自我修养--链接、装载与库笔记:Linux共享库的组织
共享库(Shared Library)概念:其实从文件结构上来讲,共享库和共享对象没什么区别,Linux下的共享库就是普通的ELF共享对象。由于共享对象可以被各个程序之间共享,所以它也就成为了库的很好的存在形式,很多库的开发者都以…

iOS下JS与原生OC互相调用
iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式。 JS调用原生OC篇 方式一 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相…
马斯克发首款会上火星的电动皮卡:28万起,可防弹,造型相当“赛博朋克”...
整理 | Jane、非主流出品 | AI科技大本营(ID:rgznai100)【导读】马斯克今日发布酝酿多年、“真爱系列”的第一辆电动皮卡Cybertruck,Cybertruck 是赛博朋克(cyberpunk)与卡车(truck)…

让你提升命令行效率的 Bash 快捷键
为什么80%的码农都做不了架构师?>>> 原文:http://linuxtoy.org/archives/bash-shortcuts.html 生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率。 编辑命令 Ctrl a :移到命令行首Ct…

程序员的自我修养--链接、装载与库笔记:Windows下的动态链接
Windows下的PE的动态链接与Linux下的ELF动态链接相比,有很多类似的地方,但也有很多不同的地方。 1. DLL简介 DLL即动态链接库(Dynamic-Link Library)的缩写,它相当于Linux下的共享对象。Windows系统中大量采用了这种DLL机制,甚至…

iOS下JS与OC互相调用(一)--UIWebView 拦截URL
1.在JS 中做一次URL跳转,然后在OC中拦截跳转。(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做。)2.利用WKWebView 的MessageHandler。3.利用系统库JavaScriptCore&#…
AI换脸鉴别率超99.6%,微软用技术应对虚假信息
来源 | 微软亚洲研究院AI头条(ID:MSRAsia)近日社交网络上爆红的一款换脸应用,让许多普通用户体验到了跟爱豆同框、与偶像飙戏的快乐,也因数据使用带来的问题陷入了舆论的漩涡——除了用户隐私保障,如何辨别和处理换脸应…

使用Apache Tiles3.x构建界面布局(一)
Tiles是一个免费的开源模板Java应用程序的框架。基于复合模式简化的用户界面的构建。对于复杂的网站仍是最简单、最优雅的方式与任何MVC技术一起工作。Struts2对Tiles提供了支持,如今Tiles发展已有13个年头,成为Apache的一个独立项目,我们可以…

iOS下JS与OC互相调用(二)--WKWebView 拦截URL
在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互。 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView。 同样的用WKWebView也可以拦截URL,做JS 与OC交互。关于WKWebView与UIWebView的对比,大…