文|pockry
最近微软抛弃 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 帮助微软重回软件开发的主流,重新赢得了开发者的认可。
在前不久 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 成为开发者最喜欢的代码编辑器。
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 的前车之鉴就在前面,而微软还没有放弃。
根据《网络安全法》实名制要求,请绑定手机号后发表评论
微软还是坚强的,爆发力存在。