微軟“木馬計”:用你的技術,比你做的還好
圖片來源@視覺中國
最近微軟拋棄 Edge 瀏覽器,轉投 Chromium 陣營的消息震動了業界,有人說瀏覽器大戰終于結束、谷歌 Chrome 獲得了***的勝利;也有人擔憂 Web 技術多樣性遭遇打擊,Chrome 會成為新 IE。但在這一片嘈雜的討論中,沒有人討論微軟為什么會這么做。這篇文章會分析一下這個問題,以及試圖說服你:瀏覽器大戰還未結束,微軟還有機會!
要討論微軟為什么會轉投 Chromium,讓我們先從 TypeScript 談起。
TypeScript:初試開源威力
TypeScript 是 JavaScript 的超集,是為了解決 JavaScript 過于靈活、難以在大型項目中使用而創立。自創立至今,TypeScript 已經被越來越多的人所接受,成為企業級 JS 項目的主流。
TypeScript 早在 2010 年就在微軟內部使用,然后在 2012 年 10 月對外公開。到了 2014 年納德拉上臺,微軟的風氣為之一變,TypeScript 也迎來了另一個階段:發布了 1.0 版本,從微軟自己的代碼托管平臺 Codeplex 遷移到 GitHub,從而吸引更多的開發者。同時微軟的計算機大神——Delphi、C# 之父 Anders Hejlsberg 也開始領導 TypeScript 的研發,他還走到前臺,到各地去為 TypeScript 布道。
我還記得 Anders 來到中國,在微軟北研做的一場分享,在分享中他手寫代碼演示了 TypeScript 的種種特性,還說自己現在每天工作有很大一部分時間在 GitHub 上。他還介紹了微軟新的研發理念,以開源為先。后來微軟的種種動作都驗證了這個說法。
TypeScript 對微軟來說太重要了。在之前開源軟件吞噬世界,而微軟則在社區逐漸邊緣化,人們談論 Linux 和其它開源軟件,而對微軟的技術視而不見,甚至有的開發者在發布軟件庫的時候拒絕開發 Windows 版本。TypeScript 幫助微軟重回軟件開發的主流,重新贏得了開發者的認可。
Source:The State Of JavaScript 2018
在前不久 Stateofjs 發布的調查報告里,除了 JS 的官方語言 ES6,TypeScript 的支持率遠遠超過了其它 JS 的方言 / 近親。
TypeScript 的成功也鼓舞了微軟更多的擁抱開源,包括后面將.NET core
及相關工具開源,甚至將 Azure 的文檔也開源在 Github 上。在 2018 年的 GitHub 年度報告里,微軟不僅在參與開源項目人數上名列前茅,還有多個項目進入***的項目 Top 10.
VS Code:用你的技術還比你受歡迎
2014 年微軟還有另一個大動作,就是發布了 Visual Studio Code,這對微軟來說是另一個歷史性的突破。
微軟***次將開發工具帶到了 Linux 和 macOS 上,***次將開發工具開源,同時也是***次利用其它公司的核心技術開發自己的產品。這個核心技術就是現在在跨平臺桌面開發中越來越受歡迎的 Electron(之前叫 Atom-Shell)。
Electron 是 GitHub 在打造自己的桌面端產品的過程中沉淀下來的,GitHub 基于它開發了自己的桌面客戶端和代碼編輯器 Atom。Atom 為代碼編輯器領域吹進了一股新風,并對傳統的代碼編輯器 Sublime Text 等形成了強烈的沖擊。
微軟的 Visual Studio 號稱“宇宙*** IDE”,其強大毋庸置疑。它適合 C++、C# 等靜態語言的開發,但越來越多的編程語言如 JavaScript、Python、PHP 等青睞使用輕量級的代碼編輯器來進行開發。為了應對這股潮流,2015 年微軟推出 Visual Studio Code,但出人意料的是,微軟在 VS Code 使用了 GitHub 的開發框架。
微軟不是沒有能力推出自己的開發框架,并且當時的 Atom-Shell 也才推出一年多尚顯稚嫩,但這次稍顯冒險的行為,為微軟贏得豐厚的回報:發布僅僅三年之后,VS Code 成為開發者最喜歡的代碼編輯器。
Source:StackOverflow Developer Survey Results 2018
VS Code 是如此受歡迎,它甚至都不需要微軟的開發者們到處去布道。這中間有一件趣事:極客 時間曾聯系 VS Code 團隊的工程師呂鵬,讓他來開設一個付費的課程,課程本身不貴,作者既布道了這個編輯器又從勞動中獲得收益,但作者卻擔心被人認為靠公司項目斂財而將課程下線了。在短短不到一周的上線時間內,課程就有幾千人購買,足以見得 VS Code 受歡迎的程度。
如果說 TypeScript 代表著對開源的擁抱,VS Code 既開源又使用別家技術所以代表著開放,既然微軟已經在這兩個項目上驗證了開源和開放的威力,那么為什么不在其它的項目上復用已有的經驗呢?
新 Edge:復用已有成功經驗
微軟 Edge 團隊在 GitHub 上發布了一篇文檔,解釋了為什么 Edge 是復用上述經驗的一個良好的目標:
- 早在一年前移動端的 Edge 瀏覽器已經使用其它平臺的技術構建。這并不出奇,蘋果規定瀏覽器需基于自家技術開發,連 Chrome 到了 iOS 上也得乖乖的用 WebKit。
- Edge 本身使用了一些開源技術,如 ANGLE、Web Audio、Brotli 等。
- 之前微軟幫助 Chromium 在適配 ARM 平臺時已經做了一些工作,微軟發現,第三方瀏覽器在提升 Windows 用戶體驗、性能、降低功耗等方面并不上心,為了給終端用戶更好的體驗,微軟有必要去治理它們的源頭,其中最主要的就是 Chromium。
當然,還有一條微軟不好意思說但外人看的很明白的點:Edge 之前在調研中市場覆蓋率僅占 4% 左右,這樣下去什么也不做才真會默默死掉,還不如掀桌子重來。
當你看明白了微軟正在 Edge 上復用它們開源與開放的經驗的時候,也就知道我為什么會說瀏覽器大戰還沒有結束了。
大家對于 Web 技術多樣性的擔憂暫時是沒有必要的,微軟在瀏覽器內核的更上游——Web 標準上正在投入更大的力量參與,具體就體現在微軟會更多的參與到 W3C 和 WHATWG 的事務中去。
如果谷歌無視 Web 標準一意孤行,到時候微軟熟悉了 Chromium 的開發之后,將有能力從 Chromium 創建分支,這也是開源允許的做法。
Edge 更換底層平臺,毫無疑問影響深遠,而這么做也給微軟帶來新的機會:
- Edge 將迎來 Chromium 平臺上量多質優的瀏覽器插件,從而大大增強 Edge 的功能。
- 前不久報道過微軟正在研發針對 ChromeOS 上網本的 Windows Lite 版本,這個版本將主要支持 PWA 和 UWP 應用,通過采用 Chromium,微軟可以更好的支持谷歌推出的 PWA,甚至參與到 PWA 的研發設計當中。
- 通過將微軟賬戶集成進 Chromium 里,微軟也可以打造自己圍繞瀏覽器的生態,到時再通過一個遷移工具一鍵將 Chrome 的各種設置和插件移到 Edge 上,那還不是美滋滋。
所以 Edge 轉投 Chromium 不但不意味著瀏覽器大戰的結束,反正還意味著未來還可能再起波瀾!
谷歌,小心微軟“木馬計”
大公司通常容易患上一種 NIHS 綜合征(Not Invent Here Syndrome),具體表現為如果哪項受歡迎的技術不是自己的,那么一定要做一個和它類似的。微軟也曾經是這一癥狀的患者,在歷史上,它創建了類比于 JavaScript 的 JScript、類比于 Flash 的 Silverlight,毫無疑問,這些全都失敗了。
一旦拋棄了這個癥狀,微軟突然發現自己可以發揮真正的實力:在開發 Windows、Office、Visual Studio 期間積累的豐富的經驗技術和對用戶體驗的理解。
使用別家的技術,然后比別人做的好,這目前是微軟的獨家本領。這種行為就像特洛伊木馬,進入別人腹地顛覆對方。而且讓對方無奈的是,這種行為甚至無從防御,這些都是開源規則允許甚至是鼓勵的,只能眼睜睜的看著對方超過自己。
當然,前兩次成功不一定能證明接下來也一定成功。特別是 Edge 與對手相差懸殊,想要趕超其難度超乎想象。
總之,未來的瀏覽器領域的競爭仍然充滿變數,谷歌暫時領先了,但也不能躺在功勞簿上打盹,畢竟,IE 的前車之鑒就在前面,而微軟還沒有放棄。