W3C HTML 工作组联合主席 Paul Cotton 谈 HTML5 发展愿景

阅读数:1272 2012 年 8 月 28 日

话题:JavaScriptChromeHTML5语言 & 开发

W3C 中国 HTML5 梦工厂于 18 日在北京国际会议中心召开了“2012 年 HTML5 主题峰会”,W3C HTML 工作组联合主席、 微软互操作性技术团队合作伙伴项目经理、加拿大 SC8 云计算咨询委员会主席在会上做了演讲。

在下午的媒体采访中,我们就 HTML5 标准开发进度、愿景等相关问题对他做了进一步采访。

InfoQ:刚才您说到 WebSocket 这个功能 IE9 没有采用,而 Chrome 先用了,微软是等到 IE10 出来的时候才把这个功能加进去,我觉得这也符合微软做产品或者做功能一贯的思维,就是等功能完善以后再培养市场。我不知道你怎么看待这种思维如何适应目前互联网化的要求?

Paul Cotton:首先有关您谈到的问题,除微软之外的好几家市场上的浏览器厂商,我们发觉他们心跳速度都比微软要快。我说这些浏览器厂商的心跳速度快是什么意思呢?很多的开发人员他们都愿意去测试一下在火狐或者 Chrome 这些浏览器产品所带来的最性感的,也是属于最新的一些功能。这也是为什么微软在 Windows8 还有 IE10 的开发过程中,一共向外发布了六种不同的平台预览版本。要知道之前可能这些版本一年才发布一次,但是现在我们已经加快了它的发布速度。

我认为其实不同类型的开发人员,他们是喜欢不同节奏的,我知道有些开发人员,他非常喜欢这种感觉,谷歌前一天晚上所做的一个新的技术功能,他第二天早上就希望自己能够掌握、能够用。但是我们知道,也出现过这种事情,谷歌一出新的版本,结果用了之前标准技术的开发人员所开发的网站,就会崩溃,需要重写,所以我们认为这是一个鱼与熊掌不可兼得的局面,你自己要去做一个权衡。也就说,有的开发人员他就喜欢用最新的东西,他也愿意花那个工夫去改版自己的网站,重新去编写一些东西。你想如果你是微软的话,那你不可能对这样一些大网站用户,比如说奥运会 2012 的这种官网说,对不起,昨天晚上我的某个技术崩溃了,你必须重新编写这些网站。我相信对于这些大网站来说,这绝对是一个不可接受的做法。

因此,我们还是要回到权衡这个问题,也就是说,到底是你希望使用更新的东西,还是希望更加稳定的技术。

InfoQ:我看到你们工作里面也包含一部分互操作性的技术合作。那么想了解一下,大概在 08 年、09 年的时候,微软的互操作性可能更多的是和一些开源组织的合作,可能是应用系统层面的。我想了解一下现在阶段,微软是如何看待 HTML5 在互操作这个领域、层面上的一些价值?

Paul Cotton: 这个要谈很多了。其实我本人是在 09 年正式成为 W3C 联席主席,而且我认为在 09 年之后,W3C 在互操作性方面的工作有了极大的进展,刚才我也为大家展示了 11 年和 12 年工作的对比图,你们发现有很多的技术标准都已经处在完成阶段,为什么会是这样呢?事实上只有当 W3C 完成了对这个标准的互操作性的工作之后,它才能够进入最后的阶段,成了最后推荐。

其实在另外一方面展示了我们在互操作性上的一个工作进展。其中最好的一个例子,就是 CSS2.1,这是一个比较常见的 Web 测试,大家通常都用 CSS3 来去测试它。事实上如果我们通过 CSS3 来去测试 IE7,还有 IE8 的早期版本,发觉它在 CSS 方面的表现是非常差的,甚至有人说 CSS2.1 这个标准做出来就是为了惩罚 IE。

在 CSS2.0 正式作为一个标准推出之后,我们向 W3C 提交了八千个针对它所做的测试。然后我们对 W3C 建议让其他的厂商也同样针对他们的 CSS 功能,做整套的测试,来看他们的功能、性能怎么样。正是因为我们向 W3C 所提交的这八千个测试,帮助 W3C 最终完成了 CSS2.0 标准的制订,最终所有的这些浏览器的厂商他们通过了 93% 的我们谈到的测试套件,最后 7% 的测试基本上就不需要再去做了,所以这也很好的展示了微软其实是非常致力于去完善这些标准的。大家可以想象一下,正是因为微软向 W3C 免费提供了这八千个测试,帮助了其他的一些厂商,尤其是浏览器厂商,来完成他们技术开发的工作。所以其实谈到您所说得互操作性的问题呢,微软现在做得是非常积极的。

我们已经意识到了对于所有的浏览器厂商来说,一方面他们应该在技术的执行、性能以及图形处理能力方面进行竞争。但是另外一方面,所有的浏览器厂商都应该在 W3C、IETF,也就是框架的搭建方面进行合作,从而为用户提供更好的网站视觉的体验。

InfoQ:微软刚刚推出对 HTML5 的支持的时候,可能会引起开发者的一些顾虑,因为当时 Silverlight 相对来说成熟一些,HTML5 刚刚推出有些不成熟的地方。那么我想了解一下,从微软的角度,如何打消开发者针对 Sliverlight 和 HTML5 的顾虑?这个层面有些什么样的转变?

Paul Cotton:首先我要谈到的不光是 IE,还有我们微软的 Windows,其实都在全面采用 HTML5。尤其是我们谈到 Windows8,我们非常鼓励开发人员在开发应用的时候使用 HTML5 和 JavaScript。Visual Studio 对这些编程语言是全面支持的。但是在三年之前,当微软开始计划开发 Windows8 的时候,在技术开发路线上到底选取哪条,其实我们已经做出了一个大的赌注,就是在 HTML5 之上。大家可能还记得我展示的这个 W3C 的技术标准工作图,其实即使是在一年之前,也就是 11 年有很多 HTML5 的标准还是处于不稳定期的。但是早在那几年之前,我们在 Windows8 上,其实就选了这样一个主流的路线,那事实上这也是为什么我们向 W3C 工作组,派驻了 20 名微软人员进驻。当然不光是这 20 个人员,在我们微软的其他团队也有大量的做 HTML5 的标准开发的一些工作人员。

InfoQ:您作为 W3C HTML5 工作组的主席。我想问一下,你刚才也说到了,HTML5 还没有到达最后推荐的阶段,目前业内的应用状况是怎么样的?有没有达到一个主流的情况?还有什么工作要做?

Paul Cotton:首先,HTML5 的三位联席主席身上要完成这项工作的担子是非常沉重的。在过去的一年中,我们看到有大量做媒体、做内容的公司加入了 W3C,还有 AT&T 负责做视频技术开发的实验室也都加入进来。同时还有一些游戏公司,最有名的就是最大的游戏公司 Zynga,这家公司开发游戏主要就是基于 HTML 的。事实上这些已经是非常扎实的一些证据,说明大家其实对 HTML5 都是抱着非常期待的一个情绪,这也是为什么我说 HTML5 工作组的三位联席主席身上的担子是非常沉重的,其实不光是 W3C 的会员单位之内,来自于 W3C 以外也是有很多希望看到 HTML5 标准化工作完成的想法。自外部的推动 HTML5 标准化动力最佳的一个例子就是 ePub、电子书的一些出版商,因为这些出版商在大量的推电子书阅读器。

如果他要在我们所说的芯片层,去把 HTML5 作为一个技术固化在硬件上的时候,他们当然希望 HTML5 是一个成熟的业界标准。那事实上不光是有内外部的,来自内部和外部的一些影响力说您能赶快完成 HTML5 的标准化的工作,其实还有很大的一定量的话语声呢,是谈到你还要进一步推动 HTML5 的标准,让它增添新的功能。比如说我今天上午谈到的一些附加的 HTML5 媒体的功能,像苹果在它的 iPod 上,就已经很早的时候用到了 adapter stream,也就是适配性的媒体流这样一些功能。但是我们知道这是一种非常专有的 JavaScript 脚本技术,所以很多的人都在呼唤这一些技术功能,也应该在未来的 HTML5 标准上去添加。所以整个市场,不光是说非常青睐 HTML5,而更应该说的是大家更加期待的是未来 HTML5 标准出现。但是以上的答案都是我作为微软官方的给你的一些答案。所以你会看,你就会毫不吃惊的看 HTML5 的使用,不光是在平板电脑上,我们 Windows8 的设备上,还有甚至我们游戏机产品上 Xbox,还有我们的 WindowsPhone 上,所以不光是我们微软自己的产品,像我们的合作伙伴 OEM 的产品上,都用普遍的、全面的使用 HTML。

InfoQ:我刚才从你的演讲中你提到了,你的工作从 HTML5,到下一代的 HTML 标准 HTML.next,那未来的 HTML5、HTML.next 会有哪一些提升?

Paul Cotton:那我先谈一下 HTML5 的媒体扩展功能,事实上我们工作组有一个专门叫做兴趣小组是在推这个工作的。我们知道这个兴趣小组,主要是聚焦两部分的媒体方面技术工作。并且能够让这两个技术,在网络上普遍的使用起来,第一个就是我刚才谈到的媒体拓展,这种可以适配的这样一个流媒体的技术。我在这里必须认可苹果在他的 iPod 上就已经用到了这个功能,也就说他能够允许浏览器的一些程序控制你和数据源这样一个连接的速度。其实举一个很简单的例子,因为实际上由大屏幕的一些设备观看视频所需要的连接速度和你用手机来去观看视频的连接速度是需求不同的。肯定现在是在有限移动宽带的速度之下,当然如果要考虑向 4G 升级,我们不谈这个,确实媒体拓展是第一个这种媒体的功能;

第二个就是我谈的是有关视频内容加密,又叫媒体加密的这样一个功能。我知道在中国不是这个情况,但是至少在北美,越来越多的视频网站上的视频,通过浏览器来观看的这些视频是被加密的,Netflix 这家公司,它本身的商业模式,就是建构在这种视频加密上。否则的话,NBC 是不会允许 Netflix 通过浏览器为用户提供他的 NBC 所版权拥有的电影,或者是一些电视节目的播放服务。我事实上也是负责主持叫做媒体任务组的小组工作,我们小组是每周开一次会,可能这一周是开有关第一个功能,下一周我们就开有关加密的,或者是其他与媒体相关的一些技术的会议。那么我的期待就是说,应该有关这两个媒体拓展功能是在今年的 9 月份或者是 10 月份会对外公布,叫做首次的这样一个工作草案版本,这第一个工作阶段。所以在 HTML5 正式的标准发布之前,我们 HTML.next 的一些实质性的工作就已经是在进展中,甚至有一部分是完成的。

InfoQ:W3C 内部有没有一些目标?乐观的也好,或者说一个范围也好,让 HTML5 成为一个正式的标准?

Paul Cotton:你们可能也注意到了,在我谈到的 W3C 工作流程中,最后一个阶段,我们称为最后推荐。这个推荐既是推荐给厂商,让你们去采用,也是推荐给最终用户让他们去使用。以前的这样一个段时间,W3C 做出来的最后推荐的这些技术标准,只是向外推荐使用。但是从两年前开始,W3C 已经获得了可以把他们最后推荐的这些技术标准提交给 ISO 形成一种国际化的标准的资格。到目前为止,ISO 已经采纳了 W3C 提交的两套标准,而且是百分之百通过,第一套是有关 Web 服务的一套标准,还有一套是有关的针对那些视力有障碍的人群,让他们能够去无障碍的获得网络内容的,叫做WCAG这一套标准。所以当 HTML5 正式成为了 W3C 最后推荐的一个技术标准的时候,不光 W3C 自己内部有这样一个推的动力,要向 ISO 去递交。同时 ISO 本身也会有这样的一个需求,希望 HTML5 能够变成一种国际的标准。当然,我们会秉持着一贯的 W3C 会员单位做出的承诺,它一定是不需要缴纳使用费、专利费的一种技术标准。

InfoQ:问一下,有没有那种时间表?

Paul Cotton:没有。先谈 ISO 这边,如果他收到一个这样提交的可能的这个标准建议的话,他需要 9 到 12 个月的时间去研究来去决定是否让它成为一个国际标准。而对于 W3C 本身来说,我们的想法是 2014 年,HTML5 能够进入最后的阶段,就是最后推荐。现在有很多的压力,不管是内部的还是外部的,都是希望我们尽快完成 HTML5 的工作。但是刚才还有另外一位记者朋友谈到的互操作性,一方面说 HTML5 要快,但是另外一方我们知道很多的开发人员,他们希望 HTML5 和现有的一些技术、标准的互操作性,所以这是一个平衡的问题。

InfoQ:你对目前这种开发的进度满意吗?

Paul Cotton:其实在四月份我们做了一个更改,你们也知道是因为谷歌的Ian_Hickson,他辞职了,当然为什么会发生这件事情,这个调整就是因为觉得当时速度、工作的进度不够满意,但是现在我们已经有八到九个专门的人员在负责这项工作,所以我们认为现在的工作速度是可以的。事实上我完全尊敬他对于 HTML5 工作方面的贡献,他的工作是做的非常好的。但是毫无疑问,整个 HTML5 工作组的工作进度是不让人满意的,所以我们尊重他个人职业生涯的选择,当他决定改变自己的工作领域的时候,我们也是建议,HTML5 工作组应该调整他的职责,换了新的编辑。

InfoQ:Node.js 引发了一个新的热潮,微软是 Node.js 社区的一个主要推动者,Node.js 整个实现的引擎是基于谷歌 V8,那么微软是否要考虑推出自己 JS 的开源引擎,在底层上替换 V8 或者提供一个可选项?

Paul Cotton:这个问题问的比较难回答的一个问题。毋庸置疑的一点是,现在有非常大的社区开发人员,他们是非常喜欢 Node.js,所以我们要保证 Node.js 也能够尽量在 Windows,而且是在 Cloud 上运行。事实上,微软专门有个叫做 Open Technology 开放技术这样一个组织,是负责微软向开发人员社区提供开放技术的,而我也参与到了这项工作中。最近你也知道,微软是把 ASP.NET Entity Framework 正式开源了,这样能够获得三方开发人员更多的技术贡献,所以我们的趋势是,你会看到微软越来越多的一些软件堆栈的资产被开源,来保证一种活力。尤其我们会非常的注重我们一些技术的互操作性,比如说他们能够在 Windows、在我们的 Azure 这样一个云上去跑。

InfoQ:现在很多的移动应用都是 APP 的这种模式,所以我不知道未来 HTML5 的发展以后,什么时候会取代目前的 APP 成为一种主流模式?

Paul Cotton:提前问了跟开发人员周一可能的一个问题:应用模式的问题。目前的现状是什么?就是每一家厂商要不他就是做设备的,比如说苹果。要么他是提供操作系统,比如谷歌的 Android 或者是我们的 Windows8。所以我们会看到不同的厂商他会有自己的一个应用商店,那我明白你提的意思,就是说等我们 HTML5 作为一个行业标准出现了,其实大家用的这些移动应用都是一样的,HTML5、CSS、Web App,那什么时候能出现一个 HTML5 的应用商店呢?这个问题是非常难的一个问题,我们拿苹果举一个例子,苹果推出这个产品,事实上是有自己非常好的几个盈利点的,一个就是我们知道的苹果应用商店,还有他的英文 iTunes。

所以为什么说这个问题难呢?就是我们得跟每一个厂商去谈,说你要放弃自己原来留住客户的这样一种方式,放弃原来的这种模式,然后以打包的方式把这些应用,就是基于 HTML5、CSS 之上的应用都放在一个容器里,作为一个可以下载的应用,去放到不同的设备平台之上。所以这就要看中国的开发人员,你们的这样一个声音了。

你们如果确实在中国有这种需求,就应该跟 W3C 这样的一些组织去提交,说在中国我们需要这样的一种打包的格式,就是把我们 HTML5 的网站内容,都以这种统一的打包方式去打包,放在一个通用的应用商店里头让用户去下载,不管他们用的是 Android 的平台,还是 IOS 的平台或者是 Windows 的平台,这样他们可以选择下载同一个游戏,然后在不同的平台上去使用,这需要你们中国的开发人员自己去推动。所以从我的观点来看,既使我们做出了这样一个平台中立的打包的格式,其实开发人员还是要做他应用的三种格式,举个例子,一种是针对苹果的,一种是针对 Android,还有一种是针对中立的这种格式,针对不同的三种消费者,消费者自己去选,他喜欢那种格式的这种应用来下载,所以最终哪种模式是最主流的、最为接受的,还是要由市场来决定。