Blink

原作者:Peter-Paul Koch(PPK)
原文链接:Blink
翻译:涂鸦码龙

Google 为 Chrome 和 Opera 创建了 新的渲染引擎 Blink。其中有没有天大的秘密,影响又是怎样的呢?

这儿有一些值得关注的 Blink 资源,我把它作为综述:

除了这些之外,Peter Beverloo 非常热心地通过电子邮件发了我一些信息。

Blink 是一个新的渲染引擎,这意味着它对 CSS 和 JavaScript 的解析将与 WebKit (Gecko 或者 Trident) 有所不同。它将驱动所有使用 Chromium 的浏览器(Google 的开源浏览器)。

Blink 已成为 WebKit 的分支,这意味着当前它跟 WebKit 几乎一样。不过,WebKit 本身不是一个单一的实体;正如我原先的研究成果 ,一款基于 WebKit 的浏览器对 CSS 和 JavaScript 的支持并不完全一致。如今,Blink 作为一种 WebKit 不足为奇。

将来这些会改变,从现在开始,WebKit 和 Blink 将带着不同的目标和不同的支持特性分道扬镳。当前 Blink 和 WebKit 的代码共享存在可行性,但是,久而久之,两者差异越来越大时,共享变得不那么容易。

因此,Blink 已成为一个 WebKit 版本,久而久之,它会像其它分支一样,离 WebKit 越来越远,越来越远……

Google 对 WebKit 项目缺乏进展很不爽。这种缺乏主要缘于实际的 WebKit 渲染引擎与实现细节纠缠不清,这些细节仅对一个平台比较重要 —— 同时需要支持的平台数量又在不断增长,尤其是移动端。

因此 Google 决定从 WebKit 移除特定平台的代码,重补安全模型,作一些其它的改变,将会在 CSS 和 JavaScript 支持方面加快步伐。

如果你坚持认为 Google 是魔鬼,不会相信这些说辞。

Blink 已经添加到 Chromium(Google 的开源浏览器) 里了。Chrome 用的 Chromium ,Yandex 浏览器也是。Opera 将从 14 开始也用 Chromium 。因此这些浏览器将来会用 Blink 。

Chrome 28 将是第一款使用 Blink 的稳定版本;早期版本还是 WebKit 。Opera 和 Yandex 从使用 Chromium 28 时起,将开始用 Blink 。

当前 Chromium 适用于 Windows ,Mac,桌面版 Linux,Android 平台。Google 似乎没有进一步移植的迹象,其他人可能会。

Skia 绘图引擎是 Chromium 的一个重要的组件。BlackBerry 黑莓已经移植了它 ,意味着黑莓在参与 Chromium 方面比其它 WebKit 用户更胜一筹。无论黑莓或其它组织,真正作出转变可能不是技术问题,而是政策问题。

理论上可以脱离 Chromium 使用 Blink ,实际上基本不可能,相互依赖太强。

作为 web 开发者的我,应该做何改变呢?

如今,对 web 开发者而言无需做何改变。从 WebKit 到 Blink 的转变基本感觉不到 —— 甚至浏览器的 UA 字符近期也不会变。当然,你还是要在 Chrome 和 Safari,Opera,IE,Firefox,一堆移动端 WebKit 等浏览器上测试你的网站。你已经这么做啦 —— 是嘛?

我比较欣赏的一点改变是 Blink 对供应商前缀的处理,借鉴了 Firefox 的方法。从 WebKit 复制当前现存的 -webkit- 前缀,以后不会增加新的,然后在合适的时期,逐步移除那些老旧的。它将用标识代替前缀:如果你想启用一个实验性功能,在 about:flags 里设置合适的标识。(同时意味着,对一般用户而言,没有设置任何标识的话,有前缀的实验性 CSS 特性将无法使用。)

interoperable implementations(互通实现)会怎么样?

W3C 规定任何新的标准都需要两个不同的(引擎)实现。我担心 Presto 消逝,渲染引擎的数量减少到3个了。

现在渲染引擎的数量又回到4个了,任何 WebKit 特性自动被 WebKit 和 Blink(彼此协作实现) 支持。

Google 是魔鬼吗?

但是… 但是… 这是不是一个愤世嫉俗的举动?是不是开发性的东西都是假的?难道 Google 不想把流行的渲染引擎给 Apple ,想锁定那些 Chromium 使用商?

如果你相信 Chrome 团队行行事乖戾,我也拦不住你。我是不会相信的。

当然,也会带一点政治色彩。Google 希望其它的浏览器厂商从 WebKit 切换到 Blink,也许会施加一点压力。

此外,Google 的工程师也不再贡献 WebKit ,再过几个月其它的 WebKit 用户可能会感觉到阵痛。理论上也有可能苹果和黑莓,三星以及其它厂商接管 Google 的摊子。如果它们不接管… 你认为谁会接管呢?

此外,Google 留给我们一个工具测量它的邪恶:Blink 主页的兼容性部分 。基本上,如果有强力的浏览器支持,或者接近完成的规范,或者适度的浏览器支持加工作草案,就会添加这个特性。

这个政策可以作为显著的证据:一旦我们看到其它浏览器不支持,且标准没说明的特性在 Blink 出现时,我们知道 Google 已经走向黑暗面。没出现这些特性的话,我们可以断定 Google 不是魔鬼了。

怎么看待分裂?

有一种想法,Blink 将加剧 web 的分裂:我还没有看到这种迹象。

Chrome 当前的 WebKit 实现不同于其它的(包括 Android 的 WebKit ),新的渲染引擎不会改变这一点。

基于 Blink 的浏览器将更像基于 WebKit 的浏览器。使用 Chromium 是使用 Blink 的必要条件,从而标准化了许多额外的工作,比如网络和绘图。

在基于 WebKit 的浏览器这些工作交给特定组件,各个浏览器厂商还要自己写(这部分应该属于 WebKit 本身)。Blink 与 WebKit 的许多差异都缘于此,Blink 不会那么脆弱。此外,Google 有兴趣与各种 Chromium ports (译者注:基于 Chromium 的浏览器)看齐。

因此,我希望 Chrome 和 Opera 更多地融合,这样将确切地减少分裂。如果更多的浏览器厂商切换到 Blink ,分裂将会更少。

对于一个公司或团体,更少的分裂意味着更多的统一,无论多么开明,都意味着准独裁的权力。问题是 Google 的批评者似乎两者都不想要,这是不可能的。你不能同时反对分裂和统一。你必须选择两者之一来抱怨。

总之我很看好这些变化。Blink 有可能会真正地加快步伐,正如 Chrome 团队的宣称,它不会加剧分裂,对 web 开发者而言,短期内不需要什么改变。有什么理由不喜欢呢?

还有一件事,Blink 团队有义务实现 text-decoration: blink

这里有更多的笔记和链接