作者|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之上。
Github主倉庫:https://github.com/tensorflow/tensorflow
Star數:53870
開源編程語言 Go
發布于2007年的編程語言。Go嘗試成為一種在保留住靈活性和性能的同時最大程度去處C系編程語言復雜度的新系統語言。雖然社區里一直有對Go特性不足的抱怨,但創始人堅決認為這對保持這一語言的成功是必不可少的。 Go語言目前主要運用于服務器編程領域。
Github主倉庫:https://github.com/golang/go
Star 數:26753
前端框架 AngularJS
AngularJS是一個用來編寫單頁Web應用的前端框架。雖然AngularJS的目標是簡化Web應用的開發過程,但其自身引入的眾多概念帶來的復雜性也受不少詬病。
Github主倉庫:https://github.com/angular/angular/
Star 數:22988
分布式計算 Protocol Buffers
用于不同進程和服務器之間進行數據通信的數據序列化工具。服務器上不同的程序能通過Protocol Buffers來進行通信和分工協作。相比XML和JSON,Protocal Buffers有著更高的性能,但你也不再能僅憑文本編輯器就查看到自己的數據。
Github主倉庫:https://github.com/google/protobuf
Star數:16496
開源編程語言 Dart
另一個由Google支持的開源編程語言。Dart著力于Web應用,移動App和物聯網設備。和Go不同,Dart不是一種編譯型語言。它和Python或Java一樣運行在自己的虛擬機之上,但也能轉換成Java放入瀏覽器中運行。
Github主倉庫:https://github.com/dart-lang/sdk
Star數:1073
操作系統 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仍然由于其輕量可擴展的特性獲得了社區的追捧。
Github主倉庫:https://github.com/Microsoft/vscode
Star數:25863
開源Java擴展 Type
微軟的開源Java擴展,為Java添加了類型支持。如果你在開發必須使用Java的Web應用而又覺得類型系統不可獲取,Type非常值得嘗試。
Github主倉庫:https://github.com/Microsoft/Type
Star數:20849
.Net 開源核心類庫,運行環境和編譯器
微軟的.Net開發環境和C#語言在編程語言領域一直被認為是功能最為強大和全面的開發平臺之一,但長期以來一直只能工作在Windows環境下,極大限制了.Net 在更廣大的領域施展身手。隨著近年來微軟的轉型,微軟終于下決心對.Net進行了全面的開源。如今.Net的核心類庫,運行環境和編譯器都已經開源,如今整套.Net環境都可以在Linux,Mac下運行。不知這遲來的開源能否挽回開發者的心呢?
Github主倉庫:https://github.com/Microsoft/dotnet
Star數:8037
開源Java解釋器 ChakraCore
微軟開源的Java執行環境。自從Chrome橫空出時,微軟的IE就一直被看成是個低效,笨拙的瀏覽器,這讓微軟自己都無法忍受。隨著Windows10一起面世的Edge瀏覽器是微軟的洗心革面之作,運行效率得到了極大的提升,多項測試中執行效率甚至超過了Chrome。 ChakaraCore,作為Edge瀏覽器的Java解釋器,是其中的秘密武器。在ChkraCore開源后,原本就火熱的Java后端開發領域或許會迎來新的推動力。
Github主倉庫:https://github.com/Microsoft/ChakraCore
Star數:6114
開源Linux環境 BashOnWindows
以過去微軟的視角來看最不可能出現的開源軟件。 BashOnWindows 不僅僅能讓Bash腳本在Windows上像在Linux環境下一樣運行,它甚至帶有一個完整的Ubuntu環境,絕大多數原來只能在Linux下運行的開源程序現在可以通過 BashOnWindows 在Windows下運行。
Github主倉庫:https://github.com/Microsoft/BashOnWindows
Star數:3915
亞馬遜重點開源軟件列表
亞馬遜是國外最大的電商公司,它同時也是國外最大的公有云計算公司之一。AWS目前統治者國外云計算領域最大的市場份額。但相比前文提到的另外兩家國外科技巨頭和云計算行業競爭者,亞馬遜在開源方面顯得較為保守。為社區作出的貢獻相比自己的體量顯得甚為微小。
開源深度學習工具 DDSTNE
DDSTNE是亞馬遜推薦系統中使用的深度學習工具,為多GPU節點和松散數據結構進行了專門優化.
Github主倉庫:https://github.com/amznlabs/amazon-dsstne
Star數:3678
開源運維輔助工具 opsworks-cookbooks
亞馬遜為開源運維工具Chef編寫的配置和運維策略集。如果你想在AWS上嘗試Chef,這是亞馬遜為你進行的專門定制。在其他平臺上嘗試Chef,亞馬遜的opsworks-chookbooks也有一定的參考意義.
Github主倉庫:https://github.com/aws/opsworks-cookbooks
Star數:970
開源數據存儲格式 Amazon Ion
亞馬遜開源的數據存儲格式,同時支持便于查看的文本格式和便于高效存儲和傳輸的二進制格式。提供了C,Java,Python語言的支持。
Github主倉庫:https://github.com/amznlabs/ion-java
Star數:621
阿里巴巴重點開源軟件列表
阿里巴巴是國內最大的互聯網公司之一,也是國內最大的云計算公司。由于其天生的平臺基因,不光進入云計算市場的時間和目前的市場份額在國內遙遙領先甚至全球范圍內相比也不輸國外巨頭,根據最新第三方市場報告,阿里云目前已占中國云計算市場份額50%。在開源軟件領域,阿里巴巴把自己多項核心技術成果以開源軟件的形式提供了出來,近年來還頻繁參與國際開源社區的發展。我們甚至驚喜的發現阿里巴巴近期開始了對因Google退場而陷入困境的NTPD項目/NTF基金會的支持。
開源移動UI層框架 Weex
開源的移動端高性能動態化,跨平臺UI框架。 Weex的出現解決了困擾移動開發領域長期以來的一份設計,多次重復開發的問題,使得開發者能夠通過一次代碼編寫即可為Androdi,IOS,H5生成美觀高性能的界面。
由于Weex已經捐贈到了Apache基金會孵化,所以代碼主倉庫已經遷移到了Apache組織下。
Github主倉庫:https://github.com/apache/incubator-weex
Github原倉庫:https://github.com/alibaba/weex
Star數:14017
開源React 組件庫Ant Design
阿里在React技術棧基礎上開源的全功能通用組件庫,沉淀了大量交互設計最佳實踐。 如果你以React的方式開發你的前端應用Ant Design不容錯過。Ant Design最近還提供了移動版Ant Design Mobile ,同樣風格的組件庫現在可平順的過度到移動Web環境。
Github主倉庫:https://github.com/ant-design/ant-design
Star數:12898
開源JSON解析和生成器 FastJSON
FastJSON是一個超高性能的JSON解析和生成器,在對外零依賴的情況下實現了對多種常用數據結構到JSON的解析和生成。評測數據長期以來一直在同類工具間遙遙領先。對JSON的處理是眾多服務端程序最頻繁執行的任務,啟用FastJSON或許能讓你的后端應用獲得不小的性能提升。
Github主倉庫:https://github.com/alibaba/fastjson
Star數:8851
開源分布式開發框架 Dubbo
高性能服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入,可以和 Spring框架無縫集成。 是阿里大規模分布式系統的秘密武器。
Github主倉庫:https://github.com/alibaba/dubbo
Star數:8390
開源Android平臺容器化開發框架 Atlas
隨著移動應用規模的增長,大型移動應用,特別是平臺級應用往往由團隊協同開發。如何實現不同功能模塊的組件化、解耦化,同時還具備動態性是Android應用開發的一個核心挑戰。Atlas在遵循安卓系統設計規范的情況下,通過反射和輕量的hook方案來實現了這一目標,并將大量的工作放到了編譯期,提高了穩定性。
Github主倉庫:https://github.com/alibaba/atlas
Star數:4203
開源消息隊列 RocketMQ
企業級互聯網架構的核心產品,基于高可用分布式集群技術,搭建了包括發布訂閱、消息軌跡、資源統計、定時(延時)、監控報警等一套完整的消息隊列服務。
Github主倉庫:https://github.com/apache/incubator-rocketmq
Github原倉庫:https://github.com/alibaba/RocketMQ
Star數:3700
開源Android構建工具 Freeline
Freeline是一個Android平臺上的構建工具,構建速度是其最大特點。它可以充分利用緩存文件,在幾秒鐘內迅速地對代碼的改動進行編譯并部署到設備上,有效地減少了日常開發中的大量重新編譯與安裝的耗時。
Github主倉庫:https://github.com/alibaba/freeline
Star數:3590
開源 MySQL數據庫分枝 AliSQL
AliSQL 是基于廣泛使用的數據庫產品 MySQL 的一個開源分支,在 MySQL 社區版的基礎上做了大量的性能與功能的優化改進。尤其適合電商、云計算以及金融等行業環境。最新的 AliSQL 版本不僅從其他開源分支比如:Percona,MariaDB,WebScaleSQL 等社區汲取精華,也沉淀了阿里巴巴多年在 MySQL 領域的經驗和解決方案。
Github主倉庫:https://github.com/alibaba/AliSQL
Star數:1915
寫在最后
通過梳理Google,微軟,亞馬遜和阿里巴巴這幾家全球領先的云計算公司的開源項目情況和社區關注度。我們可以看出不少有趣的現象,比如大數據,AI和移動開發領域,匯聚了大公司體現技術實力的開源技術成果和社區的密切關注,必定是當前和未來技術發展的熱點。Google和微軟等國外一線公司繼續在編程語言和操作系統等底層技術層面耕耘,而中國以阿里巴巴為代表的一流技術公司已經開始在框架,平臺,數據庫等中間層發力推動著整個行業的技術進步并取得了不輸國外公司的成績。在云計算這樣比拼技術的行業,或許通過觀察開源項目發展情況一探究竟,更能讓我們獲取一些枯燥市場份額數據之外的行業認知。
今日薦文
360胡寧:通往CTO的道路上就是四個字......