到了年末各種盤點出爐的時候,開源圈今年雖然沒有“GitHub被微軟收購”、“Red Hat被IBM收購”如此重磅且出圈的新聞,但依然不失精彩。開源圈作為開發者密度最高的圈子,微軟作為開發者群體中“滲透率”最高的商業公司,微軟與開源之間的故事,天生自帶流量屬性。
本文就來和大家一起回顧微軟在2019年與開源相關的重要事件——主要是引發較多關注和廣泛討論的新聞。
為了更好地理解微軟的開源2019,下面我們將會按不同的領域而非時間線進行回顧。
編程語言
從擁抱Rust 到開發基于Rust的安全編程語言
最初,微軟表示正探索將Rust作為C和C++的安全替代方案,并且也對外展示了使用Rust 重寫Windows組件的體驗。根據微軟的說法,Rust 是一種從根本上考慮安全性的編程語言,他們將嘗試使用Rust 重寫各種產品,因為在過去的十年里,微軟 70%以上的安全補丁都提供了與內存相關的錯誤,而Rust 正是解決這個問題的“良藥”。
到后來,微軟為解決相應內存問題所做的工作,他們決定開發基于Rust的新編程語言 Verona,這是是用于微軟“安全基礎設施編程(safe infrastructure programming)”的一種新語言。
微軟推出新編程語言Bosque
微軟推出了一款全新的編程語言Bosque,該語言參考了TypeScript的語法與類型,還有 ML和Node/JavaScript的語義,其作者認為 Bosque超越了主流的結構化程序設計。
Bosque由規范化程序設計思想而來,旨在解決當前結構化程序設計中遇到的這些問題,作者把結構化程序設計的興起認為是編程器與開發工具的第一個黃金時代,他相信此次提出的規范化編程模型將大大提高開發者的工作效率、提高軟件質量,并帶來編譯器和開發工具的第二個黃金時代。
微軟宣布加入OpenJDK項目
微軟正式簽署了《Oracle貢獻者協議》,甲骨文公司也對微軟參與該項目表示了認可及歡迎。
微軟及其子公司在許多方面都高度依賴Java,并且在微軟Azure云中向客戶提供Java運行時服務。微軟已經認識到在甲骨文成功有效管理下的OpenJDK項目所獲得的巨大價值,它收購了Java,得到了更廣泛的軟件生態系統,微軟也期待做出自己的一份貢獻,它表示自己的團隊在初期將致力于一些小的bug修復和反向移植。
微軟開源其C++標準庫實現 STL
微軟開源了其MSVC的C++標準庫實現(也就是STL),該庫實現是MSVC工具集和Visual Studio IDE的一部分。
微軟表示開源STL可以使開發者隨時了解其發展情況,使用最新更新,并且幫助完善項目。“隨著C++標準化的加速發展,并且每年都會有更多的重大特性被投票,我們相信從開源貢獻中接受主要特性將很重要。”
微軟官方上線Python教程
微軟上線了一套 Python教程《Develop with Python on Windows》,文檔內容包括設置Python開發環境、在Windows與WSL子系統中安裝相應開發工具,以及集成VS Code與Git工具并進行開發等。
開發工具
微軟開源全新終端應用Windows Terminal
微軟在 Build 2019大會上宣布開源全新的終端 Windows Terminal,這是一個全新的、流行的、功能強大的命令行終端工具。包含很多來社區呼聲很高的特性,例如:多Tab支持、富文本、多語言支持、可配置、主題和樣式,支持emoji和基于GPU運算的文本渲染等。
Visual Studio Online公開上線
微軟在 Build 2019大會上宣布了Web版本的VS Code - Visual Studio Online,并在兩個月后的 Ignite 2019大會上推出Visual Studio Online公開預覽版。
▲Visual Studio Online
從頁面上直觀地看,VS Online就是一個Web版的VS Code,但這其實只是它的一個前端界面,這個基于網頁瀏覽器的編輯器同樣支持Git存儲庫、擴展和內置的命令行接口,因此開發者可從任何設備編輯、運行和調試應用。而VS Online更強大的能力來自于背后Azure提供的云計算能力,并且這些能力可以支持到 VS Code與VS中,這意味著,其實開發者不使用瀏覽器也可以體驗到VS Online帶來的強大云計算資源支持。
微軟開源新字體Cascadia Code
Cascadia Code是微軟在 Build 2019大會上宣布推出的等寬字體,微軟介紹它是與新的終端Windows Terminal一起開發的,官方建議將其與終端應用和VS、VS Code等文本編輯器一起使用。
Cascadia Code為命令行和代碼編輯器提供了全新的體驗,并且它還支持編程連字(Programming Ligatures),就是在編寫代碼的時候,可以組合字符創建新的字形,這對于代碼的可讀性和呈現后的用戶友好度都是一種很好的機制,同時這也增強了Windows Terminal的現代外觀。
操作系統
微軟在Windows 10中搞了個真正的Linux內核
2019年微軟直接在Windows中安上了一顆“Linux內臟”,這顆Linux內臟其實是今年5月份在Windows 10上推出的全新版本WSL(Windows Subsystem for Linux),新版本WSL 2使用了全新的架構,這是一個真正的Linux內核,它改變了 Linux二進制文件與Windows和計算機硬件的交互方式。
微軟將exFAT技術添加到Linux內核
微軟宣布將其 exFAT技術添加到Linux內核中。exFAT文件系統是FAT32的替代者,它由微軟開發,但是不僅用于Windows系統,目前exFAT在整個電子行業中都得到了廣泛應用,特別是 SD卡、USB閃存驅動、數碼相機和MP3播放器中使用最為充分。
如今微軟開放了它的exFAT技術,并且把技術規范公開,這意味著,往后 Linux內核可以直接堂堂正正地將exFAT支持開箱即用。微軟還強調了一句:Linux社區可以放心地使用Linux內核中包含的exFAT。
微軟將新版Edge瀏覽器引入Linux
繼推出WSL2、將 exFAT技術添加至Linux內核,微軟再次瞄準了Linux。在Ignite 2019 大會上,微軟正式宣布Edge for Linux 不久后將會發布。
微軟高級編輯Zac Bowden稱新的Edge是完全跨平臺的,該瀏覽器將是支持Windows平臺,包括服務器和客戶端,以及macOS、Android、iOS和Linux。
微軟開源Bing搜索背后的關鍵算法
微軟開源了一項Bing搜索背后的關鍵算法——SPTAG,它使Bing能夠快速將搜索結果返回給用戶。
SPTAG(Space Partition Tree And Graph)是分布式近似最近鄰域搜索(ANN)庫,為大規模矢量搜索場景提供高質量矢量索引構建、搜索和分布式在線服務工具包。利用SPTAG算法作為開源Python庫的核心,Bing能夠在幾毫秒內搜索數十億條信息。
開源文化自由軟件之父RMS受邀到微軟發表演講
自由軟件運動發起人 RMS受邀在微軟進行了演講,其中談到微軟在開源上的貢獻,他表示微軟未來活動的主要動力,無論如何都必定是基于利潤的,微軟的開源貢獻其實對于“自由世界”毫無貢獻。
RMS還給了微軟十條建議,代表性的包括開源Windows、收回“毒瘤”言論以及指導GitHub正確許可證。
微軟將主辦首場Linux會議 WSLConf
微軟公布了明年3月在Microsoft HQ舉辦WSLConf的消息,WSLConf是由微軟主辦的首個與Linux相關的會議,主要圍繞WSL進行討論,內容涉及該平臺的最新發展動態,也會介紹WSL與一些IDE如Visual Studio和JetBrains的集成。
Canonical 宣布它將成為 WSLConf 的“特別贊助商”,畢竟Ubuntu是最早與微軟合作的Linux發行版,它也是WSL中最受歡迎的版本。
繼推出 WSL2、將 exFAT 技術添加至 Linux 內核,和宣布第一屆微軟 Linux 大會后,微軟再次瞄準了 Linux。這次 Linux 用戶將很可能迎來新版 Edge 瀏覽器。
微軟網絡技術程序經理 Sean Larson 在 Twitter 上發布了一條消息,表示 Edge 開發團隊正在收集并完善將 Edge 引入 Linux 的需求,因此制作了一份調查問卷,希望使用 Linux 的開發人員幫忙填寫。該問卷內容主要關于被調查者對 Linux 發行版的偏好、在 Linux 上使用 web 瀏覽器的場景和需求等等。
對于此事,一些網友認為 MS Edge 只是披著一層外衣的 Chromium 罷了,將其引入 Linux 只會給熙熙攘攘的瀏覽器市場再添一份擁堵。另一些人則覺得這將對 Chromium Edge 的 MSFT 開源二進制文件發展有幫助。
目前在 Linux 發行版上已有各種基于 Chromium 的瀏覽器可供使用,外媒 fossbytes 的看法是,微軟正在從 Chromium 源代碼中刪除與 Google 相關的大部分內容,所以對于那些希望擁有無 Google 瀏覽器體驗的用戶來說,它也不失為一種選擇。
當然,這只是一項調查,可以說它透露出微軟想將 Edge 瀏覽器引入 Linux 的意圖,但無法保證 Edge for Linux 一定會發生。畢竟 Windows 上的新版 Edge 都還在 beta 階段,尚未正式就緒。
對了,可以點此進入問卷填寫頁面:「鏈接」