1. 程式人生 > >Google、亞馬遜、微軟 、阿里巴巴開源軟體一覽

Google、亞馬遜、微軟 、阿里巴巴開源軟體一覽

作者:InfoQ

編輯:小智

為什麼要釋出開源專案?一是開源能夠幫助他人更快地開發軟體,促進世界創新,主要是社會價值層面的考慮。二是開源能夠倒逼工程師寫出更好的程式碼。三是開源能夠更有效利用社群的力量,幫助企業一起解決難題。開源,讓世界更美好,不是嗎?

寫在前面

Google,亞馬遜,微軟,和阿里巴巴都是體量最大的幾個網際網路公司,也都是作為雲廠商的幾個大玩家。  在這幾家技術公司的合力推動之下,雲端計算的時代真正來到了我們身邊。優秀的技術公司不會缺少自己的技術思考,這些思考有些深藏在雲端,我們難以窺見,但不少也會凝結成開源軟體這種最能體現網際網路技術創新的人類文明成果,推動整個行業的進步。

下面就讓我們一起觀察這幾家公司的重點開源專案,來嘗試一探行業未來的風向。如果下文列出的開源專案程式碼倉庫託管在Github平臺,本文還會列出該專案的Github Star數,這是評判一個開源專案受關注程度的最好指標。

Google重點開源軟體列表

Google 長期一來一直是開源軟體的重要推動力量,自己也靠著開源軟體形成的生態維護著國外搜尋引擎市場的王者地位。雖然Google開源從去年底陸續傳出停止支援ntpd;新開源首頁效果酷炫但不友好等一些負面訊息,但以其多年的耕耘,Google在開源世界的地位,其他公司一時還仍然難以撼動。

開源移動作業系統 Android

世界最流行的作業系統,市場佔有量甚至超過了Windows。 成功很大程度來源Android作業系統相比競爭對手採用了開源的策略,使得手機制造商能夠大量生產基於Android作業系統的手機。

開源瀏覽器 Chromium

大多數人都聽過Google旗下的瀏覽器Chrome ,但少有人知道Chromium。 事實上Chromium是Chrome的開源版本,幾乎所有的瀏覽器新特性都會首先出現在Chromium上再逐步往Chrome“下放”。由於Chromium的開源屬性,幾乎所有的國產瀏覽器裡都有著Chromium的開原始碼。 Google憑藉著Chromium的開源,一舉顛覆了IE在瀏覽器市場的統治地位.

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,還是僅僅是個試驗專案,現在還不得而知。

微軟重點開源軟體列表

微軟,老牌軟體巨人。歷史上長時期被看成開源世界最大的敵對勢力, 微軟也曾經把開源旗幟專案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和微軟等國外一線公司繼續在程式語言和作業系統等底層技術層面耕耘,而中國以阿里巴巴為代表的一流技術公司已經開始在框架,平臺,資料庫等中間層發力推動著整個行業的技術進步並取得了不輸國外公司的成績。在雲端計算這樣比拼技術的行業,或許通過觀察開源專案發展情況一探究竟,更能讓我們獲取一些枯燥市場份額資料之外的行業認知。

文章來自:微信公眾號InfoQ