Google背后的开源力量

《全球著名互联网企业背后的开源力量》文章中可知,目前开源软件已经成为了各大互联网企业背后的支撑力量,并逐渐改变着世界软件开发的格局。

[企业开源系列]系列专注于全球著名企业(包括国内企业)中的开源现状,探讨开源软件的力量,以使更多的开发者了解开源、贡献开源,打造更加和谐的国内开源生态。

本期先来了解Google背后的开源力量。


在企业使用开源和贡献开源方面,Google一直是行业的典范。一直以来,Google都在极力推广和倡导开源,并发布了一系列开源项目。这是因为Google从开源软件中尝到了甜头,如果没有开源软件,Google也难以达到今日的成功。开源软件也是Google用来对抗桌面软件霸主微软的利器。

Google所使用的部分开源软件

Google可以说是构建在开源软件上的,其基础设施及大量产品中都使用了大量的开源软件。单单一个Chrome浏览器就使用了100多个开源软件,你可以在Chrome浏览器中输入chrome://credits/,即可看到Chrome所使用的开源软件列表。

此外,在Google基础设施及内部使用的部分开源软件如下:

  • Linux内核:广泛见于Google的服务器及Android操作系统。就连Linux界的二号人物、Linux内核主要的维护者、Linus Torvalds的得力助手Andrew Morton也加入了Google。
  • GCC编译器:广泛应用于Google的产品开发中。Google的很多员工也来自GCC开发团队。
  • Python:在Google内部Python是继C++和Java之后使用率排名第三的编程语言。Python创始人Guido Van Rossum 从2005年开始进入Google,去年年底离开。
  • MySQL:Google 是MySQL的最大的用户之一,Google还将其内部改进的MySQL版本开源。
  • OpenSSL和OpenSSH:用于各产品中的安全通信
  • 大量Apache库等等

Google分布式系统的三大核心技术——Google File System(GFS)Google MapReduceGoogle BigTable)尽管不开源,但是如今也有开源版的实现,比如HDFS(Hadoop Distributed File System)是GFS的开源实现,Hadoop MapReduce是Google MapReduce的开源实现,HBase是Google BigTable的开源实现。

使用开源软件的原因

开源软件具有开放、共享、自由等特性,这是很多企业和开发者选择它的主要原因,Google也不例外。

众多优秀、成熟的开源项目的存在,使得Google根本不需要重新发明轮子或购买昂贵的产品,使用最少的人力、物力就能很快构建出一个高性能的产品或系统来。

在Google上百万台服务器中,开源软件可以为其节省一大笔开支,并且在定制修改上更加灵活。而通过社区的力量,开源软件也更加稳定、安全性更高。

Google从开源中尝到了大量的甜头,比如Android,2007年以开源形式发布以来,其阵营呈现出了爆炸式增长。如今已经成为份额第一的移动操作系统。

Google的开源文化

Google有一个称为“创意休息时间(Innovation Time Off)”的政策,即允许工程师花20%的工作时间做自己想做的事情,以此来激励更多、更广泛的创新。因此,Google的工程师也有了足够的时间来参与开源贡献。比如Chrome浏览器的开发思路都来自Google的底层员工。

Google还成立了一个开源项目办公室,专门负责Google的开源项目以及Google与开源社区之间的关系。

此外,Google也一直在招募开源领域的牛人来为其工作。这样一来,Google在开源方面处于业界领头羊的位置就不足为怪了。

Google的开源项目

开源的精神是开放、共享、自由,使用开源软件,当然也要回馈社区。Google目前已经发布了2千万行的代码,超过900个项目。其中一些知名的项目如下:

  • Android:全球份额第一的移动操作系统。
  • Chromium:Chrome和ChromeOS背后的开源项目。
  • Closure Tools:Google内部的JavaScript开发工具,使用它开发的产品包括Search、Gmail、Docs、Maps、Google+等。
  • Go:Google的Web开发语言。
  • Google Web ToolkitGWT):Google的开发工具包,用于构建和优化复杂的基于浏览器的应用程序。
  • Native Client:使本地代码运行于Web应用程序中的开源技术。
  • Tesseract OCR:目前最准确的免费OCR引擎。
  • V8 JavaScript引擎:Google的开源、高效的JavaScript引擎,使用C++编写,用于Chrome浏览器。
  • WebM:高质量的、可与H.264抗衡的视频压缩技术

Google开源项目全部列表:http://code.google.com/hosting/search?q=label:google

Google支持的开源组织

开发者很少能够从其开源软件中赚到钱,而捐助可能是他们的主要资金来源。Google在使用开源软件赚得盆满钵满的同时,也一直在资助各大开源社区。比如:

详细信息:https://developers.google.com/open-source/organizations?hl=zh-CN

Goolge的开源服务、活动

1.  Google Code开源项目托管平台

Google Code是Google利用自身服务器资源提供的开发人员主页,最初目的是为Google自身的开源软件提供开发平台,以及协助开发者扩展Google产品的功能。随着托管项目的增多,Google Code正在成为一个开放的项目托管平台,并提供了类似于Sourceforge的版本控制、问题跟踪、Wiki、下载托管和其他有用的工具。

目前该平台托管项目已经超过250,000个。

2.  Google Summer of Code

Google的Summer of Code(代码夏令营)是一个全球性的计划,每年夏季举办。该项活动的目的是帮助在校的开发者在暑期完成学术挑战。Google提供了开发者奖金,参与的开发者可以在世界各地指导机构的帮助下为各种开源项目编写代码,并可以赢得奖金。

Google对开源的支持

Google在今年年初宣布了一项举措《Open Patent Non-Assertion (OPN) Pledge(开放专利不主张承诺)》,承诺不会因部分专利起诉开源软件的开发人员、经销商或者使用者,除非Google自己先受到起诉。

Google希望它的这项承诺能够起到带头作用,促使更多的专利持有人加入到该阵营中,共同构建一个能够保护真正的创新的开放的互联网,并持续提供优质的产品和服务。

Google开源的一些“副作用”

当然,Google过度倡导开源也带来了一些“副作用”。

1.  Android的碎片化

自从Android以开源形式发布以来,发展速度极快,导致目前连Google也难以控制。随着各大设备厂商的加入,Android生态系统逐渐呈现碎片化。由于各大厂商基于各自设备定制的Android版本无法通用,使得用户的系统升级严重滞后于Google官方发布的版本。目前Android 5.0即将发布,而4年前发布的Android 1.5版本仍然存在。不仅如此,各种硬件配置、分辨率大小,使得开发者在开发应用后需要做大量的测试工作,大大增加了成本。

2.  大量产品被关闭

Google极力倡导开源,又给出了员工20%的时间来从事自己喜欢的工作,再加上Google内部在开源项目上的审批周期非常短,导致越来越多的项目迅速诞生。目前Google的产品线估计多到连他们自己都数不清。

尽管大部分产品都很优秀,但不意味着Google都能运营好。由于缺少人员维护,不断有一些产品被关闭。如今Google每年都要进行几次大扫除,清理掉一些边缘化产品以及一些与主推产品功能类似的产品。近两年,Google已经累计关闭和合并了40多个产品,包括曾推出了众多创新产品的Google实验室。而这些产品的用户只能被迫转到其他类似产品上。

无法制造利润也是这些产品被关闭的原因之一。Google如今已经被其他互联网企业(如Facebook)赶上,使得它不得不开始削减产品,集中力量发展主要产品,并开始追逐利润。目前,App Engine平台上的开发费用被提高,部分已免费数年的API也开始收费等等。

最后

可见,开源成就了Google。与此类似,另一个互联网巨头Facebook也在开源软件的基础上获取了空前的成功,同时,Facebook也推出了大量的开源产品。但据悉,Facebook内部的开源氛围似乎比Google更为浓厚。下一篇,我们将继续带来Facebook背后的开源力量,看该巨头如何通过开源软件赶超Google。

本文为CSDN编译整理,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
整套大数据课程从hadoop入门开始,由浅入深,内置“hadoop源码解析与企业应用开发实战”,“Hive开发实战”,“Hbase开发实战”,“Spark,mahout,sqoop,storm诸模块开发实战”,“数据挖掘基础。这个系列课程有几个板块组成,所以学员可以按照自己的实际情况选择学习。例如,对于只需要了解hadoop基本编程的人,只需要选择“hadoop源码解析与企业应用开发实战”模块就可以了;对于立志于从事大数据领域的零起点人员,可以选择四个板块依次学习;对于已经有一定基础的hadoop开发人员,你可以根据自己的情况,选择学习模块,而不必4个板块从头开始学。 特点1:真正做到从0开始,从入门到精通 特点2:适合不同基础的学员学习 特点3:阶梯式课程,每个阶段都有明确的主题和目标 第1周 数据分析基础 要点 数据分析流程、方法论(PEST、5W2H、逻辑树)、基础数据分析方法、数据分析师能力层级、数据的度量、探索、抽样、原理及实际操作,结合SPSS工具使用 第2周 数据挖掘基础 要点(数据挖掘概念、流程、重要环节、基础数据处理方法(缺失值、极值)、关联性分析方法(相关分析、方差分析、卡方分析)、原理及实际操作 第3周 数据挖掘工具介绍及Modeler软件使用 要点 使用Modeler,实际数据操作,为后续课程准备) 第4周 挖掘-分类 要点(决策树 C5.0、逻辑回归,最常用的二种算法,原理及实际建模操作) 第5周 挖掘-聚类 要点(层次聚类、kmeans)、挖掘-关联(Apriori),挖掘-预测(线性回归,指数平滑,移动平均), 原理及实际建模操作 第6周 数据挖掘实战 要点(以目标客户挖掘为例,从业务分析、方案制定、数据处理、数据准备、变量筛选、建模、评测、部署各个环节,使用Modeler工具,讲述建模的全过程)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值