2007 年 W3C (万维网联盟)立项 HTML5 ,直至 2014 年 10 月底,这个长达八年的规范终于正式封稿。
过去这些年,HTML5 颠覆了 PC 互联网的格局,优化了移动互联网的体验,接下来,HTML5 将颠覆原生 App 世界。这听起来有点危言耸听,但若认真分析 HTML5 的发展史,你会发现,这个世界的发展趋势确实就是这样。
熟知历史才能预知未来,先让我们来看看 HTML5 为什么诞生、这 8 年是怎么过来的。
一、 HTML5 的诞生自 W3C 于 1999 年发布 HTML4 后,Web 世界快速发展,一片繁荣。人们一度认为 HTML 标准不需要升级了。一些致力于发展 Web App 的公司另行成立了 WHATWG 组织,直到 2007 年,W3C 从 WHATWG 接手相关工作,重新开始发展 HTML5。
HTML5 的发展史,有用户的需求在推动,有技术开发者的需求在推动,更有巨大的商业利益在推动。
在互联网的早期,对用户而言,能打开浏览器接入到互联网世界就是一个神奇的事情,但互联网发展到 2005 年前后,开始出现下一个变化,就是宽带互联。
随着宽带的普及和电脑性能的增强,人们不再满足于单纯的通过互联网看新闻、收发邮件,消耗更高带宽的娱乐产品开始出现,就是流视频和网页游戏。其实视频和游戏是古老的需求,在互联网不普及的时候,需求的满足方式是离线传输的 VCD 和游戏光盘;后来互联网逐渐普及,人们更改了使用方式,通过下载软件+本地媒体播放器来看视频,下载体积较大的端游玩游戏。
但是对消费者体验更好的新方式还是出现并颠覆了以前的一切,那就是流媒体和网页游戏。Youtube 等公司把握住潮流飞速崛起,各种页游公司也如雨后春笋。
但是 HTML 标准没有把握住产业的变化及时演进,浏览器产品也未升级,这块新需求被浏览器插件满足了,那就是 Flash。这个部署在亿万浏览器里的商业插件俨然成为事实标准。2005 年 Adobe 巨资收购 Macromedia,把 Flash 收归旗下,紧接着大幅推广 FLV 流媒体和 action script 语言,很明显这桩收购可以列为 IT 并购的经典案例,FLV 流媒体和 Flash 游戏风靡互联网,Adobe 在新的产业升级中攫取了大量的利润。
除了 Flash 这个商业产品成为了事实标准,W3C 还面临一个尴尬,就是另一个私有扩展协议的制造者—IE。IE 当时在桌面浏览器占有垄断地位,并且扩展了大量的 IE Only 语法,开发者完全不知道这些语言是谁定义的。整个 web 世界,就被两家公司微软 +Adobe 绑架了。
很多 IT 巨头都坐不住了,尤其是苹果和 Google。PC 操作系统的世界难有突破,Web 浏览器被苹果寄予厚望,而且第一代 iPhone 只支持网页,那时还没有 Appstore,Safari 是乔布斯非常看重的产品;新贵 Google 虽然大量赞助 Mozilla,但并未对 IE 的地位产生实质影响,收购了 YouTube 后发现底层被 Adobe 控制,也是非常难过,而且 Google 每年给 IE 的搜索框和 Adoble FLV 缴纳的费用真不是小数目。
既然大家都是 W3C 的主席单位,好吧,我们重新开始做 HTML5 吧。
是的,HTML5 其实就是这么诞生的。那是 2007 年,IE 和 Flash 由盛转衰的转折点。
二、 HTML5 第一阶段: Web 增强与破垄断自 HTML5 诞生以来,一共经历了两个阶段,分别是 Web 增强和移动互联网。我们先从 Web 增强说起。
web 体验的丰富增强主要表现在:1. webapp,比如 gmail;2. 流媒体;3. 游戏。我们就这 3 个方面来讲 HTML5 做了什么。
1. webAppHTML5 新增了离线存储、更丰富的表单(比如 Input type=date)、js 线程、socket 王乐、标准扩展 embed、以及很多 css3 新语法…
2. 流媒体HTML5 新增了 audio、video
3. 游戏HTML5 新增了 canvas、webgl
当然还有 Google 努力在 HTML5 中推进 Header 和 Section 等标签,以利于搜索引擎分析,这些不多述。
HTML5 补充流媒体和游戏能力后,加上苹果强势拒绝在 iOS 上引入 Flash,成功的遏制了 Flash 的发展,然后就该遏制 IE 私有语法了。
在 HTML5 标准的升级过程中,苹果和 Google 同时也看到了浏览器市场重新洗牌的机会,他们一方面参与 HTML5 的规范,一边在浏览器产品上发力。Apple 首先开始大力发展 Safari,建立 WebKit 开源项目,Mac、iOS、Windows 多平台齐发力;Google 起初是赞助 Mozilla 开发 Firefox,后来自己开发了 v8 引擎,合并 WebKit,于 2008 年正式推出 Chrome。“IE 的私有规范 +Flash 不是标准,我们才是标准”这样的口号在新一代浏览器大战中打响,IE 瞬间成为千夫所指的垄断代表,甚至成了阻碍 Web 发展的**(当时 IE6 已数年未更新,并且丝毫不惧 Firefox 的发展)。
偏偏微软此时也出了晕招,推出了一系列即不完整支持规范又互相不兼容的 IE7、8、9、10,彻底失去了开发者的心。
Adobe 的 Flash 被遏制,与 Web 霸主的位子擦肩而过;IE 的私有标准被遏制,并且造成 IE 市场份额不停下滑,直到 IE 最新的移动版本反过来开始支持 WebKit 私有语法,真是令人唏嘘。不知道 HTML6 是不是该打倒 WebKit 垄断了。
三、 HTML5 第二阶段: 移动互联网随着 Chrome 和 Safari 的高歌猛进,以及 IE+Flash 的衰落,HTML5 告一段落,进入了下一个时代——移动互联网。HTML5 的跨平台优势在移动互联网时代被进一步凸显。HTML5 是唯一一个通吃 PC、Mac、iPhone、iPad、Android、Windows Phone 等主流平台的跨平台语言。Java 和 Flash 都曾梦想这个位置,但梦断于 iOS。此时人们纷纷开始研究基于 HTML5 开发跨平台手机应用。很多人当时认为,原生应用只是过渡,就像当年从C/S结构转变为B/S结构一样。而且学习 Objective-C 和 Java 很费劲,我既然会网页开发,为何不试试 HTML5。
W3C 此时成立了 Device API 工作组,为 HTML5 扩展了 Camera、GPS 等手机特有的 API,然而麻烦的是,移动互联网初期的迭代太快了,手机 OS 在不停的扩展硬件 API,陀螺仪、距离感应器、气压计。。。每年手机 OS 都有大版本更新。而 W3C 作为一个数百家会员单位共同决策的组织,从标准草案的提出到达成一致是非常复杂的过程,跟不上移动互联网初期的快速迭代。