对 HTML 5 的再思考

六月份写《从HTML 5想到的》的时候,对 HTML 5 主导感觉是其对技术收敛的积极作用。不过最近 Khronos 组织又开始推动 WebGL ,让我感到事情渐渐过了头。似乎 Mozilla 和 Khronos 组织正在以错误的角色,用错误的方式来解决一个假设的(似乎也是错误的)未来问题。

正如《从HTML 5想到的》最后谈到的,浏览器 plug-in 并非如同 OS native 技术一样发散而不可收敛。寻求公有开放的视频标准的动机来源于对 plug-in 未来走向不确定性的恐惧。虽然未雨绸缪是好事,但是 plug-in 的竞争并未结束,从 Adobe 以往的经历来看,ActionScript 自发地进入开放领域也并非不可能。早早的冠以一个 HTML 标准来定型两个最主要的 plug-in 应用领域(视频和 3D),很有可能扼杀本来应该发生的竞争,或者走向反方,凡是客观上会扼杀这种竞争的行为,本身都会遭受失败。所以,Mozilla 和 Khronos 组织这种过分的警觉近乎于 FUD 驱动的行为模式,要么有可能扼杀本来通过竞争或者厂商自主开放的更优秀的技术,要么会因为这种扼杀的企图导致本身被市场抛弃。

目前的 plug-in 主要是私有实现,这确是事实。但是 plug-in 架构本身有什么不可解决的问题吗?我并不这么想。事实上,足够复杂的软件系统,尤其是开源系统,应该保持核心部分的精简,同时为外围开发者提供灵活的 plug-in 框架。现在的局面是一部分 Web 需要视频和 3D 应用。但是为此就抛弃 plug-in 的扩展机制,把 3D 和视频的处理并入 HTML 标准,HTML 和 JavaScript 就变成了一个什么都装的垃圾堆。 如果要改变目前主流视频应用(和未来可能的 3D 应用)的不开放局面,开源社区的当务之急应该是推动开源的 plug-in 实现和开源 plug-in 架构的标准化。这样的做法,比把与 HTML 风格迥异的功能硬塞进 HTML 标准,会遭遇更少的阻力,取得的开放效果也丝毫不差。

把视频和 3D 并入 HTML 体现的是一种反 UNIX 的文化。UNIX 从来都不指望让一个语言完成两个任务,也避免让过多的应该由库来承担的任务进入语言核心。HTML 5 和 WebGL 无疑是希望让一个语言来完成过多的功能,或者是把特殊用途的库并入语言核心,从而剥夺了开发者自由选择的权力。Mozilla和 Khronos 组织原本完全可以着手开发自己的开源 plug-in 和 Adobe Flash 等 plug-in 在视频和 3D 领域公平竞争。强行扩充标准是一种没有自信的行为。打着开放和统一的旗号剥夺开发者和用户的权力,这样的做法更像微软捆绑产品的行为模式。现在微软也要半途加入 HTML 标准的讨论,不知道是不是因为在 Mozilla和 Khronos 组织身上嗅到了同类的气味,所以也赶来分一杯羹。

扩充 HTML 标准的另一个负面影响是导致事实上的标准分裂。计算机工业的历史证明,任何基于文字描述的标准只要足够复杂,都会事实上分裂。CORBA 是最为臭名昭著的例子。C++ 98 也是一个不怎么正面的例子。健康的开放标准通过两种路径来避免分裂。一是尽量保持标准的简单和功能单一;二是通过一个开放的 code base 而非文字描述来形成事实上的标准。前一种的典型例子就是 RFC,后一种的例子有 Perl,Python 等语言的实现。两种途径可以很好的结合,比如 TCP/IP 的 RFC 通过 BSD 的 code base 更加巩固。但是总的说来,对于私有的,或者 multi-vendor 的代码实现,还是只能适用第一种方式,就是保持标准的尽量简单。HTML 原本设计为 presentation 语言,加上 JavaScript,CSS 和 AJAX 的应用,已经是一个混沌而且脆弱的集合了。如果再为所欲为的塞进关联不甚紧密的功能,那么这个标准的分裂就指日可待了。统一 Web 视频和 3D 应用不能再走那种强制标准的老路。正确的做法是保持 HTML 标准的简洁,推动统一的 plug-in 接口,同时开发具有竞争力的开源 plug-in 实现来吸引用户以及迫使 Adobe 等公司尽快开放自己的私有 plug-in。这样才是保持整个系统健康开放的正确途径。

总之,对于 HTML 5 的发展到 WebGL 的出现,初始的欣赏已经变成对 HTML 标准的畸形膨胀的担心。这条路继续下去,所谓的公开标准无法从 Flash 等私有 plug-in 中夺取市场和用户,开源社区和用户得不到真正的开放,反而会失去一个原本统一简洁的标准。

一条回应 to “对 HTML 5 的再思考”

  1. fuzhou Says:

    利益啊,都是万恶的利益。

    Adobe这几年把持视频标准惹人眼红,现在就开始有人打算借开放之名行垄断之实。一如Steve Ballmer被人问起说为什么要开发bing和silverlight,答曰:为了给消费者以选择。君实欲救万民于水火乎?万圣节文档上白纸黑字煌煌书,俺们可没忘记呢。

    以前在一些私下里的争论里,俺一直说利益面前这些公司的发言不值得信任,现在看来需要加一条了:即使是所谓的标准化组织也不可信任。毕竟这些标准化组织也是巨头们驱动的。

    那么作为相对的弱势群体,消费者该怎么办?请愿绝对不是手段,唯一的方法只能是利用矛盾。说句笑话:Vista的失败真的是因为是用户的不满?开什么玩笑,即使是,这个所谓的“用户”也不是最终用户。在我看来,无视硬件厂商利益肆意修改驱动架构,以及忽略第三方软件商利益破坏默认的权限控制模式,才是Vista的败因。简而言之,我们不能直接对巨头说:我们不喜欢这个产品,只能说:抱歉,我们更喜欢另一个产品。

    最近复习战国策,不知不觉有些时代错位,见笑。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

w

Connecting to %s


%d 博主赞过: