专栏名称: InfoQ
有内容的技术社区媒体。
目录
相关文章推荐
新浪科技  ·  【#3.5分餐厅更好吃吗# ... ·  5 天前  
新浪科技  ·  【#男子山姆购榴莲千层发现疑虫卵异物# ... ·  5 天前  
新浪科技  ·  【#如何用AI对抗麦学# ... ·  5 天前  
新浪科技  ·  【#雷军周鸿祎乌镇峰会10年全勤生# ... ·  1 周前  
51好读  ›  专栏  ›  InfoQ

Google、亚马逊、微软 、阿里巴巴开源软件一览

InfoQ  · 公众号  · 科技媒体  · 2017-04-28 08:00

正文

作者|InfoQ
编辑|小智
为什么要发布开源项目?一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑。二是开源能够倒逼工程师写出更好的代码。三是开源能够更有效利用社区的力量,帮助企业一起解决难题。开源,让世界更美好,不是吗?
写在前面

Google,亚马逊,微软,和阿里巴巴都是体量最大的几个互联网公司,也都是作为云厂商的几个大玩家。  在这几家技术公司的合力推动之下,云计算的时代真正来到了我们身边。优秀的技术公司不会缺少自己的技术思考,这些思考有些深藏在云端,我们难以窥见,但不少也会凝结成开源软件这种最能体现互联网技术创新的人类文明成果,推动整个行业的进步。

下面就让我们一起观察这几家公司的重点开源项目,来尝试一探行业未来的风向。如果下文列出的开源项目代码仓库托管在Github平台,本文还会列出该项目的Github Star数,这是评判一个开源项目受关注程度的最好指标。

Google重点开源软件列表

Google 长期一来一直是开源软件的重要推动力量,自己也靠着开源软件形成的生态维护着国外搜索引擎市场的王者地位。虽然Google开源从去年底陆续传出停止支持ntpd;新开源首页效果酷炫但不友好等一些负面消息,但以其多年的耕耘,Google在开源世界的地位,其他公司一时还仍然难以撼动。

开源移动操作系统 Android

世界最流行的操作系统,市场占有量甚至超过了Windows。 成功很大程度来源Android操作系统相比竞争对手采用了开源的策略,使得手机制造商能够大量生产基于Android操作系统的手机。

项目地址:https://source.android.com

开源浏览器 Chromium

大多数人都听过Google旗下的浏览器Chrome ,但少有人知道Chromium。 事实上Chromium是Chrome的开源版本,几乎所有的浏览器新特性都会首先出现在Chromium上再逐步往Chrome“下放”。由于Chromium的开源属性,几乎所有的国产浏览器里都有着Chromium的开源代码。 Google凭借着Chromium的开源,一举颠覆了IE在浏览器市场的统治地位.

项目地址: https://www.chromium.org/

AI和机器学习 TensorFlow

TensorFlow是Google开源的用于机器学习库。用于构建和训练神经网络,编写AI程序。去年横扫人类围棋高手的Google AI程序,就是基于TensorFlow编写的。TensorFlow可以运行在CPU,也可以运行在GPU之上。

开源编程语言 Go

发布于2007年的编程语言。Go尝试成为一种在保留住灵活性和性能的同时最大程度去处C系编程语言复杂度的新系统语言。虽然社区里一直有对Go特性不足的抱怨,但创始人坚决认为这对保持这一语言的成功是必不可少的。 Go语言目前主要运用于服务器编程领域。

前端框架 AngularJS

AngularJS是一个用来编写单页Web应用的前端框架。虽然AngularJS的目标是简化Web应用的开发过程,但其自身引入的众多概念带来的复杂性也受不少诟病。

分布式计算 Protocol Buffers

用于不同进程和服务器之间进行数据通信的数据序列化工具。服务器上不同的程序能通过Protocol Buffers来进行通信和分工协作。相比XML和JSON,Protocal Buffers有着更高的性能,但你也不再能仅凭文本编辑器就查看到自己的数据。

开源编程语言 Dart

另一个由Google支持的开源编程语言。Dart着力于Web应用,移动App和物联网设备。和Go不同,Dart不是一种编译型语言。它和Python或Java一样运行在自己的虚拟机之上,但也能转换成JavaScript放入浏览器中运行。

操作系统 Fuchsia OS

神秘的全新开源操作系统,和之前的Android不同,Fuchsia OS没有基于Linux内核,而是另起炉灶打造里一套更能被Google控制的操作系统内核. Google是准备打造IOT(物联网)领域的新Android,还是仅仅是个试验项目,现在还不得而知。

项目地址: https://fuchsia.googlesource.com

微软重点开源软件列表

微软,老牌软件巨人。历史上长时期被看成开源世界最大的敌对势力, 微软也曾经把开源旗帜项目Linux称呼为“毒瘤”。时光飞逝,转眼十多年过去,原本一出帝国和起义军对立的经典故事在Web和移动互联网两波技术大潮的洗礼下如今已经面目全非。 Linux成了世界上使用最广泛的操作系统,开源技术成了技术发展的主流。 可帝国也没有陨落,传统强项企业服务成功往云端转移,凭借Azure业务又在公有云计算领域获得高速增长。 曾经口中的“毒瘤”,如今成了爱的对象,更是成了核心产品Windows10的组成部分。 如此可见微软对开源的态度发生了多大的变化。

开源IDE Visual Studio Code

集成开发环境(IDE)是微软的一个传统强项,虽然和Windows专属版本比起来仍然有一些不足。 但可以支持从Linux到Mac,Windows的Visual Studio Code仍然由于其轻量可扩展的特性获得了社区的追捧。

开源JavaScript扩展 TypeScript

微软的开源JavaScript扩展,为JavaScript添加了类型支持。如果你在开发必须使用JavaScript的Web应用而又觉得类型系统不可获取,TypeScript非常值得尝试。

.Net 开源核心类库,运行环境和编译器

微软的.Net开发环境和C#语言在编程语言领域一直被认为是功能最为强大和全面的开发平台之一,但长期以来一直只能工作在Windows环境下,极大限制了.Net 在更广大的领域施展身手。随着近年来微软的转型,微软终于下决心对.Net进行了全面的开源。如今.Net的核心类库,运行环境和编译器都已经开源,如今整套.Net环境都可以在Linux,Mac下运行。不知这迟来的开源能否挽回开发者的心呢?

开源JavaScript解释器 ChakraCore

微软开源的JavaScript执行环境。自从Chrome横空出时,微软的IE就一直被看成是个低效,笨拙的浏览器,这让微软自己都无法忍受。随着Windows10一起面世的Edge浏览器是微软的洗心革面之作,运行效率得到了极大的提升,多项测试中执行效率甚至超过了Chrome。 ChakaraCore,作为Edge浏览器的JavaScript解释器,是其中的秘密武器。在ChkraCore开源后,原本就火热的JavaScript后端开发领域或许会迎来新的推动力。

开源Linux环境 BashOnWindows

以过去微软的视角来看最不可能出现的开源软件。 BashOnWindows 不仅仅能让Bash脚本在Windows上像在Linux环境下一样运行,它甚至带有一个完整的Ubuntu环境,绝大多数原来只能在Linux下运行的开源程序现在可以通过 BashOnWindows 在Windows下运行。

亚马逊重点开源软件列表

亚马逊是国外最大的电商公司,它同时也是国外最大的公有云计算公司之一。AWS目前统治者国外云计算领域最大的市场份额。但相比前文提到的另外两家国外科技巨头和云计算行业竞争者,亚马逊在开源方面显得较为保守。为社区作出的贡献相比自己的体量显得甚为微小。

开源深度学习工具 DDSTNE

DDSTNE是亚马逊推荐系统中使用的深度学习工具,为多GPU节点和松散数据结构进行了专门优化.

开源运维辅助工具 opsworks-cookbooks

亚马逊为开源运维工具Chef编写的配置和运维策略集。如果你想在AWS上尝试Chef,这是亚马逊为你进行的专门定制。在其他平台上尝试Chef,亚马逊的opsworks-chookbooks也有一定的参考意义.

开源数据存储格式 Amazon Ion

亚马逊开源的数据存储格式,同时支持便于查看的文本格式和便于高效存储和传输的二进制格式。提供了C,Java,Python语言的支持。

阿里巴巴重点开源软件列表

阿里巴巴是国内最大的互联网公司之一,也是国内最大的云计算公司。由于其天生的平台基因,不光进入云计算市场的时间和目前的市场份额在国内遥遥领先甚至全球范围内相比也不输国外巨头,根据最新第三方市场报告,阿里云目前已占中国云计算市场份额50%。在开源软件领域,阿里巴巴把自己多项核心技术成果以开源软件的形式提供了出来,近年来还频繁参与国际开源社区的发展。我们甚至惊喜的发现阿里巴巴近期开始了对因Google退场而陷入困境的NTPD项目/NTF基金会的支持。

开源移动UI层框架 Weex

开源的移动端高性能动态化,跨平台UI框架。 Weex的出现解决了困扰移动开发领域长期以来的一份设计,多次重复开发的问题,使得开发者能够通过一次代码编写即可为Androdi,IOS,H5生成美观高性能的界面。

由于Weex已经捐赠到了Apache基金会孵化,所以代码主仓库已经迁移到了Apache组织下。

开源React 组件库Ant Design

阿里在React技术栈基础上开源的全功能通用组件库,沉淀了大量交互设计最佳实践。 如果你以React的方式开发你的前端应用Ant Design不容错过。Ant Design最近还提供了移动版Ant Design Mobile ,同样风格的组件库现在可平顺的过度到移动Web环境。

开源JSON解析和生成器 FastJSON

FastJSON是一个超高性能的JSON解析和生成器,在对外零依赖的情况下实现了对多种常用数据结构到JSON的解析和生成。评测数据长期以来一直在同类工具间遥遥领先。对JSON的处理是众多服务端程序最频繁执行的任务,启用FastJSON或许能让你的后端应用获得不小的性能提升。

开源分布式开发框架 Dubbo

高性能服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入,可以和 Spring框架无缝集成。 是阿里大规模分布式系统的秘密武器。

开源Android平台容器化开发框架 Atlas

随着移动应用规模的增长,大型移动应用,特别是平台级应用往往由团队协同开发。如何实现不同功能模块的组件化、解耦化,同时还具备动态性是Android应用开发的一个核心挑战。Atlas在遵循安卓系统设计规范的情况下,通过反射和轻量的hook方案来实现了这一目标,并将大量的工作放到了编译期,提高了稳定性。

开源消息队列 RocketMQ

企业级互联网架构的核心产品,基于高可用分布式集群技术,搭建了包括发布订阅、消息轨迹、资源统计、定时(延时)、监控报警等一套完整的消息队列服务。

开源Android构建工具 Freeline

Freeline是一个Android平台上的构建工具,构建速度是其最大特点。它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。

开源 MySQL数据库分枝 AliSQL

AliSQL 是基于广泛使用的数据库产品 MySQL 的一个开源分支,在 MySQL 社区版的基础上做了大量的性能与功能的优化改进。尤其适合电商、云计算以及金融等行业环境。最新的 AliSQL 版本不仅从其他开源分支比如:Percona,MariaDB,WebScaleSQL 等社区汲取精华,也沉淀了阿里巴巴多年在 MySQL 领域的经验和解决方案。

写在最后

通过梳理Google,微软,亚马逊和阿里巴巴这几家全球领先的云计算公司的开源项目情况和社区关注度。我们可以看出不少有趣的现象,比如大数据,AI和移动开发领域,汇聚了大公司体现技术实力的开源技术成果和社区的密切关注,必定是当前和未来技术发展的热点。Google和微软等国外一线公司继续在编程语言和操作系统等底层技术层面耕耘,而中国以阿里巴巴为代表的一流技术公司已经开始在框架,平台,数据库等中间层发力推动着整个行业的技术进步并取得了不输国外公司的成绩。在云计算这样比拼技术的行业,或许通过观察开源项目发展情况一探究竟,更能让我们获取一些枯燥市场份额数据之外的行业认知。

今日荐文

点击下方图片即可阅读

360胡宁:通往CTO的道路上就是四个字......