过去二十年间浏览器的技术大战已经发生了好几次,头把交椅从Netscape转到IE又转到了如今的WebKit,战火从桌面蔓延到移动平台……但万变不离其宗,似乎总有一个强大的派系脱颖而出,成为某时间内的网络主宰者。
WebKit一度是下个领导者的有力人选,当移动市场占有率相当高的Opera也迫于缺乏开发者支持与iOS限制而转投WebKit,不少人已默认WebKit为新的霸主。
当Google毅然决定从WebKit中脱离出来,成立自己的新分支Blink时,所有业内人都意识到,那渐渐褪去的硝烟将再次扬起。
以下是Blink发布短短3日内的业界消息——
Opera确认他们将转为支持Blink的开发(因为Opera用的是Chromium)。 苹果团队宣布将移除WebKit对Skia(2D渲染系统)和V8(javascript引擎)的支持,两者均为Chromium的核心技术。 苹果团队同时确认WebKit将不再支持JavascriptCore以外的JS引擎(理由是缺乏支持),引来三星与甲骨文成员的担忧,因为三星系统在用V8引擎的WebKitGTK+,而甲骨文在开发基于WebKit的JS引擎。 此外WebKit项目贡献者之一Krzysztof Kowalczyk(Sumatra PDF的开发者)猜测Google这次出走与他们和苹果团队之间的意见分歧日渐增大有关——
Google想把Dart语言的VM加入到WebKit,苹果以实现太麻烦的理由拒绝了他们的请求。 Google Chrome基于WebKit打造了安全沙盒与多处理支持,当苹果团队去实现同样的功能时,他们不但没使用Google的设计,更推出了不向后兼容API的WebKit2(苹果的成员称是Google不愿意帮忙)。 Kowalczyk称Google加入WebKit项目后提供了50%以上的代码,然而最终拍板是否添加功能的权利却在苹果团队手中——这就像两只狮子在草原上绕圈对峙一样。
与此同时,看似在状况外的Mozilla其实也在为他们自己的Firefox OS争取存活空间——asm.js,基本上就是他们和iOS/Android竞争的手段。
asm.js允许开发者用其它语言(例如C/C++)撰写代码,然后将他们编译为高速的Javascript执行,能做到更靠近原生编译的运行速度(注意这里JS已经算是bytecode了)。 有了asm.js,在移动方面,Firefox OS向的开发者也有了打造高效能App的机会(例如说可媲美iOS/Android的3D游戏) 在桌面方面,Firefox也有了对抗Google PNaCl(Portable Native Client)的武器。 有趣的是,虽然Chromium内部已经有成员建议应该支持asm.js(因为它算是一个开放标准),却也有V8的工程师质疑asm.js的开发方向。再加上微软与苹果都希望维护自己的生态系统,asm.js能否大行其道尚难估计。
至于微软?虽然没有上面几家的大动作,也在IE11开始考虑支持SPDY(Google研发的加密传输协议)与WebGL(他们在前几个版本以安全性为由拒绝)。
倒是苹果,业内都在猜测是否会就此减慢WebKit的开发进度——毕竟iOS 7是他们的主要任务。
无论如何,2013年将是一场全新战争的开始,以下是有待战争“解决”的近期与远期问题——
Blink将逐步放弃对-webkit-前缀的支持,转为支持非prefix的CSS,WebKit是否跟从? iOS不支持WebKit以外的浏览器核心的规则何去何从,或者说Opera Mobile与Chrome怎么活下去? 5年后我们是否还在手写Javascript与HTML,亦或是由编译器代劳? 当开放的网络标准下增加了“每个浏览器都有自己更擅长的科技”的潜台词,开发者怎么挑选阵营? This is just the beginning.
小手一抖,本文作者kula,来自鸟窝:
http://niaowo.me/topics/1210