前W3C顾问Klaus Birkenbihl谈HTML5与万维网未来

Klaus Birkenbihl自1998年至2010年间在W3C担任数种不同职位,他现在是位于德国的Internet和Web技术咨询公司——ict-Media公司CEO。不久前,Klaus为W3C中国办事处开发了一套针对开发者的HTML5教程,并为公司和互联网机构提供培训。InfoQ有幸在德国与Klaus Birkenbihl相会,并聆听他关于HTML5和万维网未来的想法。

什么是HTML5?为何需要HTML5?

InfoQ:之前,我们一直基于1999年版的HTML4.01进行开发,现在为什么要转到HTML5?相对HTML4.01来说,HTML5有哪些新特性?它在技术上有什么重大进步?有什么与众不同吗?

Klaus Birkenbihl:如果你满足于HTML 4.1(或 XHTML1)所提供的特性,那么不转到HTML5也行。由于HTML 4.1也是HTML5的一个子集(个别例外之处除外),所以从这个意义上讲,你也算在使用HTML5了。坚守HTML 4.1意味着:你不必为浏览器兼容性操心,不用为旧版浏览器担心,也不用学习。所以,目前你只要留意HTML5的新特性,并在运用新特性时多加小心就行 了。但是,如果你正在寻求开发高级Web应用或Web游戏的方法的话,也许你该多多关注HTML5(还有CSS3)的功能特性:更简单的用户交互、原生多 媒体支持、并发执行、客户端存储与数据库、基于socket的通信、低层2D/3D图形编程、SVG和MathML支持、(移动)设备特性(如GPS、摄 像头、运动传感器、温度计等等)。

InfoQ:HTML5能让开发变得更加轻松吗?

Klaus Birkenbihl:理论上,HTML5里的不少特性可以让开发更加轻松。但由于向后兼容的原 因,HTML5仍然保留或扩展了HTML4中的一些不相容部分,并继承了旧版浏览器里不好的“最佳实践”。另外,在实践中要让开发真正轻松起来,还有赖于 标准的稳定与广泛实施。而不幸的是,如今这个前提是不成立的。充其量,只有一部分工作草案(Working Draft)在新版浏览器中得到了广泛实施。过去,符合标准的浏览器不会给开发者带来困扰。而现在,用HTML5开发意味着免不了反复试验、参照浏览器兼 容表(即那些由好心人维护着的、跟踪主流浏览器实现状态的表格)、用模拟器模拟缺失特性,以及设计回退机制以防万一。这是身处技术前沿所必须付出的代价。 另一方面,HTML5拥有庞大的开发者社区,你可以通过社区获取信息和工具,并相互帮助。今天,使用HTML5是一个挑战,甚至有时很让人郁闷,但它带来 更多的乐趣、启发和激动。

InfoQ:HTML5里有没有针对移动Web的特性?语义网和Linked Data呢?总体上看,RDFa和微数据等与HTML5能有怎样的结合?

Klaus Birkenbihl:关于移动Web,HTML5是一个应被重视的平台。通过HTML5的相关 API,你可以访问移动设备的许多功能(如摄像头、GPS、运动传感器、存储、电话、屏幕等等),而且它支持在线和离线使用。因此,你能想到的很多应用都 可以用HTML5完成设备无关的实现。至于语义网(Semantic Web)和Linked Data,我想,做语义网的人可能会因为见到的是微数据(microdata)而不是RDFa,因此不太开心。这限制了灵活性和强大性。不过,W3C也于 2011年5月发布了《HTML+RDFa1.1》工作草案。最终,你可以从微数据里提取RDF,也可以从RDFa里提取RDF。因此,HTML5文档是有办法融合到语义网里的。

InfoQ:HTML5会取代Adobe Flash等技术吗?

Klaus Birkenbihl:嗯,HTML5将在许多方面取代过去的FLASH技术,成为开放标准。试试Adobe Edge吧,它是HTML5的FLASH替代方案。

HTML的标准化

InfoQ:由于许多人不太明白W3C的标准化流程,能否借此机会请您解释一下一份技术规范成为W3C标准(或推荐标准,按W3C术语的话)要经历哪些过程?

Klaus Birkenbihl:就标准制定过程来说,W3C的流程与其他标准化组织并无多大差异。主要涉及 起草、审阅、实际检验、统一意见等等。W3C的大部分流程都是公开进行的。W3C标准化流程的参与者涉及:工作组及其主席和编辑、公众和W3C会员、开发 者,以及W3C总监(即Tim Berners-Lee)。由于W3C标准往往意味着数十亿美元之巨的产业,因此必须要有严格的制定流程。W3C技术规范在成为W3C标准的过程中要经历 五个阶段,各阶段对应相应的活动。

  1. 工作草案(Working Draft):工作组依据工作组章程(charter)提出一系列工作草案。公众和W3C会员可以提出评论和问题。工作组必须处理这些反馈。(本阶段时长依多种因素而变)
  2. 最终工作草案(Last Call Working Draft):工作组已完成工作,并要求公众和W3C会员提交最后的评论与问题。同样地,工作组必须处理这些反馈。如果出现情况,可能要回到工作草案阶段。(本阶段时长通常为三周,但也可以更长)
  3. 当最终工作草案阶段结束且问题都得到解决后,将进入候选推荐标准(Candidate Recommendation)阶段。此时可以认为该规范已经稳定,可以展开试验性实施了。工作组必须将实施中得到的反馈整合到规范中。同样,如果出现情 况,需返回到工作草案阶段。(根据实施进展,本阶段通常持续零到一年)
  4. 如无意外,规范将进入建议推荐标准(Proposed Recommendation)阶段。在此阶段,W3C总监(Tim Berners-Lee)将正式请求W3C会员审阅这份建议推荐标准。(本阶段时长必须不少于四周)
  5. 根据审阅结果,要么W3C总监宣布该规范成为W3C推荐标准(Recommendation)(可能发生微小改动),要么返回工作草案阶段,或者彻底从W3C工作日程上移去。技术规范一旦成为推荐标准,它就是官方的W3C标准了。更多细节请参阅《W3C流程文档》。

InfoQ:现在的HTML5还是工作草案,有人说它要到2022年才会成为W3C标准,您怎么看?

Klaus Birkenbihl:根据W3C HTML5 FAQ,W3C计划在2014年发布HTML5推荐标准。 但HTML5跟其他W3C标准不同。理论上,W3C仍将沿着流程继续前进;但实践中,发生了前所未有的怪事——当HTML5还处于工作草案时,就已经被广 泛实施并实际运用了。而让问题更加复杂化的是,在W3C之外还有一个叫WHATWG的组织在进行着HTML5标准的制定。公平地讲,最初是WHATWG启 动了HTML5的工作。W3C和WHATWG两个组织各自维护着自己的HTML5规范(它们内容基本相同)。在W3C网站上可以读到更多关于HTML历史的信息。

InfoQ:为什么W3C和WHATWG在做同样的事呢?这两个组织之间的关系怎样?当人们提及HTML5时,通常指的是哪一个?这两份HTML标准有什么异同?

Klaus Birkenbihl:WHATWG和W3C的共存绝非故意,而是偶然事件。你可以在前面提到的 HTML历史页面了解到更多详情。虽然这两个组织在做同样的标准,但它们对标准的看法有所不同。W3C坚持走稳定的规范制定路线,而WHATWG则创造出 一种所谓的活动标准(Living Standard)——即随时间不断变化的标准。(更多细节请参阅WHATWG FAQ) 因此,WHATWG称它们的规范为HTML(而不是HTML5)。为了让读者了解规范中各部分的成熟度,WHATWG在HTML规范中的各处标出了浏览器 实现状态以及WHATWG关于是否建议实现的注释。WHATWG HTML规范中的有些部分,对应于单独的W3C技术文档。你可以认为这种状况迟早会崩溃,可是W3C和WHATWG都承受不起失败,因为这会伤害到 Web。因此,两家(拥有相当部分的交叉参与者)在各自坚持自己的流程和思想的同时,也在力求保持规范间的兼容性。

InfoQ:JavaScript是HTML5开发的重要部分。HTML5与ECMAScript的发展路线是否一致?

Klaus Birkenbihl:其实HTML5对ECMAScript的依赖性并没有人们想象中的那么高。 HTML5 API规范并不要求一定采用JavaScript(也就是ECMAScript)。尽管有些示例使用了JavaScript,但其实HTML5 API是用抽象的接口定义语言(Interface Definition Language,IDL)来定义的。当然,就事实来说,我们必须承认,99.9%的客户端脚本是且将是JavaScript。我觉得,ECMA在将现代 编程语言原理整合进ECMAScript方面做了不错的努力。因此,ECMA和W3C(或WHATWG)有着明确的任务划分。当然了,万一ECMA停止工 作,会给Web造成麻烦。但直到目前,我预见不到这种可能性。

万维网架构

InfoQ:简单性是HTML成功的主要原因之一,但HTML5却似乎正变得越来越复杂。您认为新版本的HTML会伤害到其成功的基础吗?

Klaus Birkenbihl:简单性是Web得以发展起来的重要因素之一,也是所有科学技术所寻求的一个 优点。HTML5的最重要目标是把Web变成一个平台,同时要保留过去Web的观感——所有旧的网站都应被支持。因此,在HTML5的需求里蕴含着相冲突 的方面。在提出新概念的同时,旧路新铺(paving cow paths)、保持向后兼容,常常给避免复杂性带来阻碍。我觉得,虽然现在这不是问题,但长远来看,我们还是免不了基于现在从HTML5中获得的经验来构 建新的技术。

InfoQ:自两年前起,就有Web是否已死的争论。其实它真实想表达的是,越来越多的网页正在被Web应用所取代,Web正在丧 失其开放性、正在转变为半封闭的Web。联想到HTML5提供了丰富的交互功能与API设计,似乎HTML5正是要拥抱Web应用。那么现在请问,您觉得 Web真的死了吗?Linked Open Data所高度依赖的开放性,在未来是否会遭到潜在破坏?您的评论是?

Klaus Birkenbihl:其实Web的开放性一直都在受到威胁。以私有方案替代Web、构筑围墙的尝试从来就没有停止过。还好,在W3C和Tim Berners-Lee的努力之下,它们没有成功过。HTML5是保持Web开放的一种努力,它会成功。这是用户、开发者和浏览器厂商的最大利益所在。

InfoQ:关于Web的未来,您有什么想说的吗?

Klaus Birkenbihl:Internet和通信技术的历史是以一系列变革为特征的。我们经历了主机 时代、以工作站和PC为基础的分散式计算时代,我们见证了图形用户界面(GUI)、局域网、广域网还有万维网。Web本身就见证了若干重大变革。由文档型 Web,到参与型Web(即Web2.0),再到社交网络。今天,我们看到Web正在成为一个设备和厂商独立的应用平台。语义网(Semantic Web)技术也许能够提供一个全球数据库。具备灵活供应存储与计算能力的云技术,除可用于构建强大的网络,还可以成为下层基础设施的一个重要部分。在商用 IT变得更为紧凑的同时,平板电脑和智能手机将在许多场合取代工作站和PC(假如能够解决有关信任、安全和隐私问题的话)。Web将成为一个支持以开放途 径来开发应用的虚拟平台。

实践

InfoQ:由于HTML5还处于不稳定状态,开发者们现在该做什么呢?不知您有何建议?

Klaus Birkenbihl:这也许是我最常被问到的问题(尽管网上有很多建议)。这是一个棘手的问题: 作为开发者,你要做的不仅仅是开发页面或应用。你还得在使用HTML5特性时进行以下检查(有些是WHATWG规范里给出的提示):这个特性足够稳定吗? 目标浏览器支持该特性吗?对于不支持该特性的浏览器,是否存在满意的回退机制?有没有库(如jQuery等)能够模拟该特性?网上有没有其他方案?有时回 答这些问题很简单。如果不的话——你多半该放弃使用相应的HTML5特性。

InfoQ:继百度加入W3C之后,作为中国最大、世界第三大互联网公司的腾讯公司也于今年初加入了W3C。您如何看待此事?中国企业通过加入像W3C这样的标准化组织积极参与标准制定的梦想,离现实有多远?

Klaus Birkenbihl:去年秋天我曾有幸在腾讯做过讲演。我在那里遇到不少优秀的Web专家。在过 去的三年中,我还访问过中国其他一些大公司,也有相同感受。我经常听到这样的担心:“我们适合进入吗?”不过,似乎许多公司都拿出了决心。我从W3C中国 办事处得知,中国是近期W3C发展会员最快的地区。这将缓和另一个重要问题:即语言的问题。强大的W3C中文社区有助于激发更多的翻译,并促进中国代表和 团体成员们彼此相互帮助。因此,我预期未来中国会对Web的发展做出相当的贡献。

关于受访者

Klaus Birkenbihl是德国ict-Media公司CEO。他拥有波恩大学数学学位,曾在德国国家计算机研究院(GMD)担任研究员,以及在科隆大学和波 恩-莱茵-锡格应用科技大学从事教学工作。Klaus自80年代早期就参与到了Internet的开发中。他在1998年创建了W3C德国和奥地利办事 处,并一直负责到2005年。他在2004至2005年间担任W3C咨询委员会(Advisory Board)委员。2007年他创办了ict-Media公司,并在W3C团队中担任了五年顾问。Klaus曾负责管理W3C全球办事处。他还是W3C驻 德国标准协会代表(执行委员会委员)和W3C驻ICANN代表(提名委员会委员)。

This entry was posted in ASP.NET. Bookmark the permalink.

发表评论

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 / 更改 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s