
作者|木環
編輯|小智
在GitHub上貢獻最多的公司,不是Facebook,也不是Google,而是微軟。InfoQ對微軟數個較受社區歡迎的項目進行了整理,以饗讀者。希望開源的精神,能給技術社區帶來更多的實惠!
寫在前麵
提起微軟公司,不少人第一反應是老牌巨頭專注於私有化軟件盈利模式,這大抵是源於微軟前CEO Steve Ballmer曾經宣稱“Linux是顆毒瘤(Linux is a cancer)”,並曾經偏執地認為所有開源軟件都不值一提。但是,這是2001年的事情了,是時候更新大家對微軟的刻板印象。
這裏,不提繼任者Satya Nadella的微軟擁抱開源進行新式轉型的決策,也不提微軟去年加入Linux基金會等開源組織的舉動。單單而言,隻問一個問題:哪家公司在GitHub上貢獻最多?不是Facebook,也不是Google,而是微軟公司,這個第一名還是多少有些出人意料。

2014年10月,出任微軟首席執行官的薩提亞∙ 納德拉,第一次公開宣布“微軟愛Linux”。同年,微軟首次發布.NET Core並將其開源;眾所周知,微軟核心的技術棧長期以來基於.NET和Windows綁定。在重寫標準庫之後,2016年6月.NET Core 1.0實現跨平台(Windows、Linux和Mac),這意味著開發者可以使用Windows開發而Linux部署。
2016年3月,Windows原生支持 Ubuntu Linux Bash, 這意味著Windows操作係統級別的開放,Win10 可以當作一台Ubuntu開發機來使用。
此外,微軟稱Azure全麵支持所有開源技術棧,並且從IaaS(VM),PaaS和SaaS(CRM、PowerBI、Office365)全麵支持用戶的靈活選擇。
InfoQ對數個較受社區歡迎的項目進行了整理如下:
Visual Studio Code:跨平台源代碼編輯器
Visual Studio Code是微軟於2015年正式發布的項目,可以運行在Mac OS X、Windows和Linux之上,麵向Web和雲應用的一款跨平台源代碼編輯器。
雖然它的名字與Visual Studio相近,但前者是代碼編輯器,後者是集成開發環境(IDE)並且目前隻運行在Windows上。
Star數量:24.3k;Fork數量:3.3k
GitHub主頁:https://github.com/Microsoft/vscode

TypeScript:開源編程語言,JavaScript的超集
TypeScript是JavaScript強類型的超集,可以編譯成純JavaScript。由微軟開發的自由和開源的編程語言,可以運行在各類瀏覽器和操作係統之上。
Star數量:19.8k ;Fork數量:2.8k
GitHub主頁:https://github.com/Microsoft/TypeScript/


CNTK: 深度學習開源工具包
CNTK全稱為The Microsoft Cognitive Toolkit, 將神經網絡描述為計算機可處理的有向圖,有向圖的葉節點表示輸入值或網絡參數,其他節點表示輸入對應的矩陣運算。CNTK便於實現並且也結合了很多流行計算模型如前饋DNN,卷積網(CNN)和複現網絡(RNN / LSTM)。它可以跨多個GPU和服務器實現隨機梯度下降(SGD,誤差反向傳播)學習與自動微分和並行化。
可以在Python或者C++語言中如同庫版應用,也可以使用其自有的描述語言BrainScript單機化使用。CNTK可適用於64位的Linux和Window,於2015年4月開源。
下圖比較CNTK的處理速度(每秒處理的幀數)與四個其他眾所周知的工具包的處理速度。 配置使用完全連接的4層神經網絡(參見微軟的基準腳本)和有效的迷你批量大小(8192)。在相同硬件上獲得的結果。
Star數量:9.9k;Fork數量:2.4k

Donnet:采用係統虛擬機運行的編程平台

.NET是微軟研發的XML Web services平台,此框架支持多種語言(如C#、F#、VB.Net、C++、Python等)的開發。.NET框架曆經亟待,最終於2014年開源。
C#通常被認為是微軟專屬,是.NET框架上最常用的編程語言之一, 其著名競爭對手是Java。
Star數量:7.8k ;Fork數量:1.2k
GitHub主頁:https://github.com/Microsoft/dotnet/network
PowerShell :為任何係統提供Windows的命令行工具
一個跨平台(Windows、Linux和macOS)自動化和配置工具/框架,可與現有工具完美配合,並優化用於處理結構化數據(例如JSON,CSV,XML等)、REST API 和對象模型。 它包括命令行shell,相關的腳本語言和用於處理cmdlet的框架。
Star數量:6.4k;Fork數量:800
MSOpenTech/redis: 在Windows使用Redis
官方隻支持64位,可自行構建32位版。
該開源項目,在2.8版本中,替代UNIX forkAPI中的內存映射文件模擬寫時複製行為。 版本3.0類似,為了便於係統文件分頁,刪除了內存映射文件,在管理堆碎片方麵進行了改進。
Redis對文件描述符的值做了一些假設,微軟構建了一個虛擬文件描述符映射層。
Star數量:5.8k;Fork數量:8.7k
WinObjc:Windows下的Objective-C
為Visual Studio提供了一個Objective-C開發環境並支持iOS API。通過重新使用Objective-C代碼和iOS API,配以Windows自有Cortana(中文名:微軟小娜,微軟發布的全球第一款個人智能助理)和通知等功能,用戶可以創建通用Windows平台(UWP)應用程序並運行在Windows設備上。
Star數量:5.8k;Fork數量:745
ASP.NET之MVC核:模型(model)-視圖(view)-控製器(controller)框架
旨在TDD友好,用於創建符合最新Web標準的複雜應用程序、構建動態網站,可以在IIS中托管或自我托管。
Star數量:4.4k;Fork數量:1.6k
BashOnWindows:解決Ubuntu Bash在Windows的使用問題
微軟在Build 2016大會上宣布了一條振奮人心的消息,大家驚呼Ubuntu on Windows。Bash on Windows 為開發者們提供了Bash shell、Linux類似環境,在不需要Linux虛擬機的情況下,大部分的Linux命令行工具基本上可以不經修改地運行在Windows上。
Star數量:3.7k;Fork數量:129

monaco-editor:基於瀏覽器的代碼編輯器
與 Visual Studio Code 類似,Monaco Editor 提供代碼提示、智能建議等代碼編輯器的功能,它運行在瀏覽器環境中,旨在開發人員們可以遠程更方便地編寫代碼。與Visual Studio Code版本相比,Monaco是一個直接映射源代碼的庫。
Star數量:4k;Fork數量:265

DMTK:分布式機器學習框架
微軟的DMTK(Distributed Machine Learning Toolkit)參數服務器框架有很多版本:
LightLDA:用於大規模主題建模的可擴展、快速和輕量級係統。
LightGBM:基於決策樹算法的快速、分布式、高性能梯度提升(GBDT,GBRT,GBM或MART)框架,用於排名、分類和許多其他機器學習任務。
分布式詞嵌入(word embedding):實現的詞嵌入的分布式算法。
Star數量:2k;Fork數量:487
Azure相關:文檔、SDK和代碼示例
微軟支持開發者們將各種開源軟件工具和技術帶入Azure。Azure 應用市場支持很多Linux 分發,包括 Ubuntu、Debian 和 SUSE;也支持借助支持 Node.js、PHP、Python 和 Java 的 Azure 應用服務,生成 Web 和移動應用。
在GitHub上Azure相關的存儲庫有1700+個。
Star數量(共計):149k;Fork數量(共計):291k

寫在最後
開源已經形成潮流,一家軟件公司的競爭對手可能是同行企業,還可能是開源項目。
不過開源可不是公益,公司還是以贏利為導向的,那麼開源對公司而言利益是什麼呢?首先,企業級版本的使用往往並不免費,並且相關的技術支持、安裝、係統整合、認證和培訓等服務也是收取費用的。 其次,項目開源之後,可以吸引社區中對此熱情的開發者們。傳統模式下,軟件巨頭公司需要雇傭大量工程師進行開發、測試和本地化等。但是,開源相當於把一部分工作“外包”給社區。
此外,如果開源項目代碼優質,則會很好地塑造技術形象並在開源圈產生影響力,從而起到推廣公司品牌的作用。更重要的是,公司可以接觸到社區中的高尖專家程序員,增加了對他們的吸引力也就增加了更多招納賢士的可能性,他們有可能會以兼職或者全職的形式加入公司。單純對項目本身而言,如果被其他公司采用、再回饋到社區,這是優化項目和豐富使用場景的良性循環。
其實微軟很早開始關注社區開發者並有了開源的舉措:MSDN實現創立於1992年是使用層級的技術文件開放;CodePlex創立於2006年先後托管了很多開源項目;CodePlex Foundation開放源碼基金會成立於2009年。
那麼微軟之外世界的時間發展線是怎樣的呢?雖然其他幾家開源軟件基金會更早成立(自由軟件基金會1985年、OSI開發源代碼促進會1998年、Apache軟件基金會 1999年、Eclipse基金會2004年、軟件自由管理委員會2006年);但是程序界的大規模化關注並參與開源並不比微軟的步伐早:1991年Linux源代碼開源;2007年Linux基金會成立,而GitHub也開始提供軟件源代碼托管服務;2008年StackOverflow問答討論網站建立。
如此看來,其實微軟並沒有一直盲目趕路,並且也有著不算落後的開源和社區意識。不過,緣何留下了保守不開源的刻板印象?是因為2001年時前CEO的武斷宣言?還是開源之路態度不夠堅決、宣傳力度不夠?亦或是社區更歡迎獨立的第三方開源平台而非某家企業的托管平台?不過,可以確定的一點是,如之前宣傳的那樣“Microsoft Loves Linux”,微軟擁抱開源;並且更大程度地擁抱社區的選擇(如GitHub、StackOverflow平台)。微軟設的最有價值專家獎(Microsoft MVP Award)也開始歡迎開源社區的活躍分子加入。
有人認為微軟這些開源舉動晚了,錯失了很多機會。不過,“種一棵樹最好的時間是十年前,其次是現在”。業界接下來應該更關注的是,微軟究竟會將開源做到什麼程度,並因此對社區產生多麼深刻影響。
今日薦文

從VS 2017談起,解析微軟技術生態進化之道
相關資訊
最新熱門應用
bitsuper交易所官網
其它軟件20.7 MB
下載
易歐平台app蘋果版
其它軟件273.24MB
下載
bicc交易所app蘋果
其它軟件45.94MB
下載
香港ceo交易所官網
其它軟件34.95 MB
下載
歐意錢包app
其它軟件397.1MB
下載
aibox交易所app
其它軟件112.74M
下載
btcc交易平台app
其它軟件26.13MB
下載
zb交易平台官網
其它軟件223.89MB
下載
芝麻交易平台官方安卓版
其它軟件223.89MB
下載
易歐交易所app官網安卓蘋果
其它軟件397.1MB
下載