昨天,万维网联盟(W3C)宣布,经过将近8年的艰辛努力,HTML5标准规范终于最终制定完成并已公开发布。
狭义上,HTML5是HTML的第五个版本。HTML的全称是超文本标记语言(HyperText Markup Language),由万维网的***蒂姆·伯纳斯·李设计,是为创建网页而设计的一种标记语言。HTML利用标签来描述内容的语义,使计算机能够通过识别标签来正确处理内容。
广义上,HTML5是HTML5、CSS3、Javascript 2.0的统称,因为对于现在的互联网开发而言,这三者是密不可分的。HTML用于描述内容,CSS用于定义样式,Javascript用于实现功能。
HTML是互联网的基石,目前互联网上所有的网页都是用HTML写成的。但是HTML标准的演化速度却远远跟不上互联网的发展。事实上,上一个HTML标准HTML 4.01发布于1999年12月24日,已经严重阻碍了互联网的发展。
2004年,由Firefox、Opera、Apple、Google四大浏览器厂商组成的网页超文本技术工作小组(Web Hypertext Application Technology Working Group),即WHATWG,宣布制定下一代HTML标准,即HTML5。而当时的万维网联盟(W3C)正在发展在XML和HTML基础上设计的XHTML。
于是,W3C和浏览器厂商的***次大战开始。互联网的未来究竟是由标准组织W3C决定还是由浏览器厂商决定?这场大战的决定性因素在于开发者们站在哪一边。结果很明显,开发者们当然会站在浏览器那边,毕竟浏览器是普通用户接触互联网的唯一途径。W3C于2007年接纳了WHATWG的HTML5草案,并成立了新的HTML工作团队。
然而,在2012年,W3C和WHATWG再度分道扬镳。而两者的分歧在于WHATWG 集中于演进“living”标准,而 W3C 坚持使用传统的数字编号系统定义静态的“snapshots”。 WHATWG希望构建互联网的***一个标准,即一个随着互联网发展不断更新的HTML5标准。他们认为W3C的HTML5标准一旦制定完成,即便出现错误也无法修正。而且他们认为W3C的标准制定模式太过复杂,每一代标准的制定时间过长,不符合互联网的发展速度。
所以,HTML5现在有两个标准,一个由W3C制定,一个由WHATWG制定。这会导致W3C和浏览器厂商的第二次大战吗?
当然不会,对于浏览器厂商来说,赢得浏览器之战比HTML5标准更重要。自从Google的Chrome重新掀起浏览器间的大战之后,每一家浏览器都在根据自己的情况支持HTML5标准,每一家浏览器的广告都在吹嘘自己对HTML5标准的支持。
所以,HTML5的标准已经成为了既成事实,W3C的HTML5标准只是对这个既成事实的官方认证而已。
那么,既然有了HTML5的官方标准,浏览器大战总该消停了吧。事实上,这场大战依然在延续,而开发者们依然需要为各大浏览器适配网页。
举例来说,HTML5标准设计了<video>标签,使得浏览器可以不借助Flash直接播放视频文件。但是,HTML5标准却没有规定浏览器支持的视频文件格式。现在,Firefox主推Ogg,Chrome主推WebM,Safari主推H.264。也就是说,开发者如果要使用<video>标签,需要准备多种格式的视频文件。好消息是现在似乎H.264占据了上风。
一次编写,到处运行(Write once, Run anywhere)是每一个程序员的梦想。当年的Java没有做到,原本程序员们指望Web标准能够做到。然而事实上是,只要浏览器大战没有消停,HTML5也做不到。