其他

微软、谷歌等科技巨头群雄逐鹿,谁是开源领域的卫冕之王?

2017-10-27 郭芮 CSDN

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!


三人行,必有我师——开源,不仅代表着软件源代码的开放,本身即意味着自由、共享的精神和文化。时下的开源已经成为软件业发展的大势所趋,众多行业巨头争相斗艳,那么有哪些企业能够在开源世界中独占鳌头,引领风骚?





本文基于 2017 年截至今天 GitHub 上所有的 PushEvents,对于每个 GitHub 用户都尽量分辨了所属组织,并且只关注在 2017 年增长超过 20 个 star 的仓库(比如 Apache 目前在 GitHub 有超过 1500 个仓库,但只有 205 个在今年获得了 20 个以上的 star。因此,这里只分析这 205 个仓库的提交情况)。




各公司的贡献情况


按仓库 star 数排名


顶尖的贡献组织比较


微软大约有 1300 名员工积极地将代码推送到 GitHub 上的 825 个顶级仓库;谷歌大约有 900 名员工活跃于 GitHub,将代码推送到约 1100 个顶级仓库;亚马逊大约有 134 名员工活跃于 GitHub,仅将代码推送到 158 个顶级仓库。


从活跃用户来看,微软最高,谷歌次之,亚马逊远远落后。



从拒绝到拥抱开源,微软缘何实现 180° 的战略逆转?


PC 时代,比尔•盖茨以兼容性打败了其他的所有操作系统,成就了微软的 PC 行业标准地位。后 PC 时代,由于 Steve Ballmer (2000年上台的微软首席运行官)所发布的“Linux是颗毒瘤”这一言论,使得微软多年来一直处于Linux和开源社区的对立层面。直到 14 年,Satya Nadella 接任了微软新任 CEO 这一局面才被打破。


曾经的墨守成规,到积极拥抱开源,“事实标准常常通过经济机制在市场上发生演变”。对于企业来说,无论开源与否,商业利益才是核心。PC 时代的崛起,互联网时代的转型困境,微软能在开源价值的引导下快速转变战略并实现完美逆袭,可以说是企业开源战略转型的优秀范例。


那么微软究竟如何借助开源之势并且击败 Facebook、Google 成为 GitHub No.1 的公司?除去加入Apache基金会、成立“微软开放技术有限公司”、成立.NET基金会等动作外,仅今年微软在开源领域就已经有了诸多作为,比如开源了GVFS虚拟文件系统、Azure Service Fabric SDK、ReactXP,以及可用于训练无人机和自动驾驶汽车的模拟器平台 AirSim 等项目。


谷歌独占人工智能鳌头


从贡献的顶级项目来看,谷歌员工贡献的代码仓库比微软的多了 25%,位居第一。


而本次报告中仓库 star 数位列第一的项目即是 2015 年谷歌开源的项目——TensorFlow。此前,谷歌通过与几大 IT 巨头成立了 AI 联盟,并在GCD Next 大会上推出 ML 平台。Google Brian 项目负责人认为“AI 将成为更高级的云计算“,而 CEO Pichai 则表示“要用 AI 重新定义云服务“,就连已经升任 Google 母公司 Alphabat 董事长的 Eric Schmidt 也说“ML is Next“。云时代,谷歌的人工智能将发挥极大的作用,也将成为 AI 战场上的重要武器,同时可见,人工智能依旧是当前最火热的领域之一。


扼杀开源?昔日霸主亚马逊辉煌难继


亚马逊远远落后于微软和谷歌,位居第八名。根据贡献情况排名在它之前的还有:RedHat,IBM,Pivotal,英特尔 和 Facebook。


即使是云战场的旁观者,也能看出亚马逊日渐显露的颓势——榜首位置不再,更遑论其昔日霸主的地位,在开源领域也同样如此。


开源往往是为了公司长远发展的利益考虑的,比如说通过开源拓展生态、售卖相关硬件等。亚马逊的AI和深度学习总经理Matt Wood则表示,AWS的策略是研究那些只有不差钱的公司才能研发出来的技术,让这些技术走向普罗大众。这也就体现了亚马逊一贯的路线:只招揽最优秀的研发人员做出最有竞争力的产品,从而获得市场上的成功。因此,开源只是亚马逊让技术实现民主化的一种方式,对于亚马逊的大多数开发者和员工来说,开源与否其实并不是很重要。


但有趣的是,亚马逊一方面仍在坚持打压开源生态系统以此突显自身工具的优势,另一方面却还在致力于将一些开源项目包装整合成一个盈利的产品。


BAT 引领的国内开源新态势


紧随亚马逊之后,国内以 BAT 为首的优秀企业也在积极拥抱开源社区,并且取得了瞩目的成就。


  • 阿里巴巴在开源方面一直秉持坚定而热忱的态度,积极地将其一些成熟或发展中的产品和技术以开源、开放的态度回馈到社区,比如 ant-design 、weex 、druid 等项目。

  • 今年6月,腾讯研发管理部总监许勇也首次对外公开了腾讯的开源理念,虽然腾讯的起步比较艰难,但是目前也已经在致力于轻量化的代码片段分享,或者是贡献公共组件,或者开源项目去实现技术价值的最大化和建立技术影响力,比如开源的RapidJSON、Angel、Weflow等项目。

  • 百度在开源贡献上也有所作为,比如 apollo、brpc、Paddle 等项目。


相对于微软、谷歌、Facebook等科技公司,国内的开源目前还处于一个追赶者的阶段。我们也期待国内的更多互联网企业、IT 企业可以在开源方面有更多的实际行动,让中国这个世界上除了美国之外第二大互联网大国在开源方面也取得相应的成就。


那么这份报告是如何生成?


首先是数据来源,通过GitHub Archive(https://www.githubarchive.org/)来获取。对于 Github 用户所属的公司,主要通过用户提交记录中的邮件地址来进行判断。当然不是每个人都会用自己组织的邮箱地址,很多人在 Github 上选择的是 gmail.com、users.noreply.github.com 或其他的邮箱,这种情况下就无从得知了。


在工具上,报告使用了 Google Big Query(https://cloud.google.com/bigquery/)。


具体的 SQL 代码:


#standardSQL

WITH

period AS (

 SELECT *

 FROM `githubarchive.month.2017*` a

),

repo_stars AS (

 SELECT repo.id, COUNT(DISTINCT actor.login) stars, APPROX_TOP_COUNT(repo.name, 1)[OFFSET(0)].value repo_name 

 FROM period

 WHERE type='WatchEvent'

 GROUP BY 1

 HAVING stars>20

), 

pushers_guess_emails_and_top_projects AS (

 SELECT *, REGEXP_EXTRACT(email, r'@(.*)') domain

 FROM (

  SELECT actor.id

   , APPROX_TOP_COUNT(actor.login,1)[OFFSET(0)].value login

   , APPROX_TOP_COUNT(JSON_EXTRACT_SCALAR(payload, '$.commits[0].author.email'),1)[OFFSET(0)].value email

   , COUNT(*) c

   , ARRAY_AGG(DISTINCT TO_JSON_STRING(STRUCT(b.repo_name,stars))) repos

  FROM period a

  JOIN repo_stars b

  ON a.repo.id=b.id

  WHERE type='PushEvent'

  GROUP BY 1

  HAVING c>3

 )

)

SELECT * FROM (

 SELECT domain

  , githubers

  , (SELECT COUNT(DISTINCT repo) FROM UNNEST(repos) repo) repos_contributed_to

  , ARRAY(

    SELECT AS STRUCT JSON_EXTRACT_SCALAR(repo, '$.repo_name') repo_name

    , CAST(JSON_EXTRACT_SCALAR(repo, '$.stars') AS INT64) stars

    , COUNT(*) githubers_from_domain FROM UNNEST(repos) repo 

    GROUP BY 1, 2 

    HAVING githubers_from_domain>1 

    ORDER BY stars DESC LIMIT 3

   ) top

  , (SELECT SUM(CAST(JSON_EXTRACT_SCALAR(repo, '$.stars') AS INT64)) FROM (SELECT DISTINCT repo FROM UNNEST(repos) repo)) sum_stars_projects_contributed_to

 FROM (

  SELECT domain, COUNT(*) githubers, ARRAY_CONCAT_AGG(ARRAY(SELECT * FROM UNNEST(repos) repo)) repos

  FROM pushers_guess_emails_and_top_projects

  #WHERE domain IN UNNEST(SPLIT('google.com|microsoft.com|amazon.com', '|'))

  WHERE domain NOT IN UNNEST(SPLIT('gmail.com|users.noreply.github.com|qq.com|hotmail.com|163.com|me.com|googlemail.com|outlook.com|yahoo.com|web.de|iki.fi|foxmail.com|yandex.ru', '|')) # email hosters

  GROUP BY 1

  HAVING githubers > 30

 )

 WHERE (SELECT MAX(githubers_from_domain) FROM (SELECT repo, COUNT(*) githubers_from_domain FROM UNNEST(repos) repo GROUP BY repo))>4 # second filter email hosters

)

ORDER BY githubers DESC


总结


希望通过这份报告,能为大家呈现更清晰的开源认知。其中,微软、谷歌是毫无疑问的卫冕之王,RedHat、IBM、Pivotal、英特尔 、Facebook和亚马逊也紧随其后,国内的阿里巴巴、腾讯和百度同样在开源之路上奋起直追。那么对于文中的排名你是否赞同呢?最后一点,开源是宝贵的财富资源,然而知易行难,道理或许大家都懂,但是修行却在于个人。


————— END —————


程序员自白:为什么我们能将月入五万活得像月薪五千


技术学到多厉害,才能顺利进入 BAT?


25 万年薪只是白菜价?11 个极具升值潜力的技术职位


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存