2007年,乔布斯断言拒绝Flash并预言HTML5时代来临,IT行业就对HTML5产生了一股宗教热情。HTML5有着许多出众的特性,可以直接在网页上绘图、嵌入音视频、实现信息互动,可以跨越iOS、Android等多个平台,轻易地将网页应用转换成桌面应用……它俨然成了APP的终结者以及下一代移动技术的代名词。

事至今日,已经不会有人再轻视HTML5带来的变革。最近横空出世的火狐操作系统(Fireox OS),就是试图让HTML5应用可以直接内置在手机底层架构上,以便更流畅运行。

不同领域的巨头都在行动,迪士尼收购了一家HTML5游戏开发公司,亚马逊Kindle采用HTML5技术构建书城,Twitter要用HTML5来开发iPad应用,甚至连Adobe都宣布放弃Flash在移动终端上的支持,全面从Google商店撤出,转攻HTML5!在国内也一样:腾讯、搜狐等诸多互联网企业也低调布局浏览器平台化,以HTML5实现各类应用。

但是,就在大家对HTML5寄予高度厚望时,HTML5自身的标准制定却出现了严重的分化。7月份,同为HTML5制定者的WHATWG和W3C表示无法继续合作,前者希望制定一个能够跟随市场或技术动态的标准;后者则要确立一个“死”的标准,一旦正式颁布再也无法修改。

标准一旦分化,开发者将再次面对Web的混乱,曾以跨平台优势而存在的HTML5划时代意义也就不复存在。更坏的结果是,这早已不只是WHATWG和W3C之间的纷争,巨大的市场价值,正蛊惑着每个参与者涉水其中。一直躲在背后的微软、苹果、Google等几大IT巨头是这个标准的开路者,还是掘墓者?究竟,谁才是HTML5真正的主宰?这是一场充满刀光剑影、激烈程度堪比政治斗争的多方势力较量。

的游戏规则?

按W3C的推进计划,HTML5标准正式颁布最快也要到2022年。HTML5标准制定涉及的技术并不复杂,也无需投入任何的研发或者团队,最关键的是能否拉拢到操作系统和浏览器厂家的加入,W3C也清楚这点,WHATWG向它叫板的底气,正是来自Mozilla(火狐的开发组织)、苹果和Opera的支持。

W3C选择了微软。虽然“引狼入室”的做法受到了非议,但事实证明W3C选择微软是正确的。

微软长期我行我素、不顾Web标准的作风受到其他浏览器厂家讨伐,舆论也一致对微软发出了反对的声音。高压之下,微软开始改变态度。当然,微软是不会加入由Mozilla、苹果组成的WHATWG的。

其时,IE市场占有率超过70%,W3C与WHATWG的实力对比一下子就扭转过来,而且不久微软就抛弃了自家的Silverlight技术,彻底投入了HTML5的怀抱。微软CEO鲍尔默甚至在公开场合表达了对HTML5的喜爱:“HTML5是促进前后端之间独立和创新的平台粘合剂。”

尽管微软一度倒在W3C一边,但天平很快就被扳回来了。WHATWG也找到一个重量级的砝码—Google。

Google在HTML5标准中颇具野心。HTML5不仅能让它的应用部门更好地支持Gmail、Google+这些产品,最关键的是HTML5可以替代搜索引擎无法理解的Flash。

2005年,Google吸收了WHATWG创始人伊恩。一方面,Google让伊恩继续推进WHATWG的工作;另一方面,伊恩成了Google在W3C的代表与编辑,对W3C施加影响。后来Google Chrome浏览器的市场份额迅速增长,IE一路下滑,Google作为砝码也越来越重。

然而,Google没有让WHATWG变得更团结,在竞争中体现优势,反而诱发了WHATWG内部的分裂。原因很简单—一山不容二虎。

目前,HTML5超过90%的协议基本上都已达成了共识,唯独视频格式—最关键的一环,Google与苹果之间发生了激烈的矛盾,HTML5标准制定的进程就在这里停滞了。

但统一视频格式标准并不容易。Google指责苹果选择MPEG视频协议,该格式的核心技术被一家以苹果为首的机构持有,商业化会带来专利的问题,不符合HTML5标准制定的开放原则。随后Google将Youtube的视频全部转换为它支持的WebM格式,决心跟苹果抗衡到底。

局势越来越混乱,W3C与WHATWG的分合已不是问题的关键,现在变成了:谁能调停纷争,谁就是HTML5标准的最大功臣。但这个几十亿美元的市场,谁会轻易让步呢?在技术领域,大家不会有多少耐心等待问题解决,如今出现了一种奇怪现象:HTML5标准还在草案中,却已经被广泛应用,而且各大浏览器都宣称自己对HTML5支持是最好的。

现在唯一能肯定的是,未来游戏规则不是W3C或WHATWG所能左右了。W3C前顾问Klaus Birkenbihl对眼下的局面非常担忧,他认为:“W3C或者WHATWG都承受不了失败,因为这样将伤害到Web。”言下之意是,如果这两个组织都不能控制局面的话,那么市场就会失控。

由于标准纷争而伤害产业的发展已有过深刻的教训,漫长的蓝光、HD DVD之争就葬送了DVD产业。尽管索尼的蓝光赢得了标准,但此时已经错失了发展大容量DVD的最佳时机,随着在线高清视频、互联网电视崛起,影碟失去了原本的价值。W3C开始安抚开发者了,它宣布在2014年将先拿出一个“推荐标准”,2022年再正式颁布。

真正的敌人—APP

W3C的时间表都已经出来了,乔布斯也断言了,HTML5是未来,本地App将成过去。那么,还有什么要担心的呢?

HTML5的意义远远超过其作为Web的标准,它是下一代移动应用的代名词。不过,这种颠覆性的定位却使HTML5走向本地APP的对立面。HTML5必然要面对APP生态系统开发商的阻力,而HTML5遇到的第一个障碍,就是来自曾积极推动其发展的苹果。

今年3月,苹果的官方数据显示,App Store的应用下载次数突破250亿次,与2011年1月的100亿次相比,增长了超过150%。据AdMob的估算,AppStore每年营收可达24亿美元之巨。本地App仍维持如此强势之时,苹果怎会乐意看到HTML5兴起?

有研究机构认为,HTML5兴起,将令苹果的经营利润增长在2015年或遭受30%的损失。同时,苹果生态系统的封闭性也将被打破。

苹果采取了拖延策略,为自己下一步布局留出时间。一方面,苹果在iOS设备上强推MPEG格式始终不肯让步;另一方面,苹果甚至从iOS 4.0(手机操作系统)开始,关闭了大量对HTML5重要的API,在iOS上给HTML5应用开发者设置障碍。

苹果对硬件的依赖性比较高,它的影响力可能随着硬件的销量而发生变化,但HTML5还存在另一个不稳定因素:微软在WP8之上也在规划自家的APP生态系统,它以后是否会继续一心一意地推动HTML5发展?

现在Google成了HTML5的最大希望,因为眼下Google对Android的原生生态几乎已失去控制,Google寄希望于HTML5重建一个全新的生态系统。不过,Google却心有余而力不足。

由于HTML5对复杂的Android硬件终端适应性并不好,像根据屏幕大小、分辨率来调整应用窗口大小的这种基础功能,也往往让开发者无所适从。艾媒咨询首席分析师张毅认为,“考虑到对不同设备的兼容性,目前HTML5的开发成本,不比本地APP降低多少。”而且,HTML5标准制定的分歧也加剧了开发者对兼容性的担忧。

如果一个应用要为不同标准的浏览器、终端开发不同的版本,那么HTML5跨平台的划时代意义就不复存在,开发者还不如回到APP的怀抱中,起码目前APP的用户体验、功能都要比HTML5强大得多。专注于移动互联网的点心公司CEO张磊认为,必须对HTML5技术保持审慎的态度,“大公司没有大规模投入,让小公司先去趟水、当炮灰,这就是HTML5的现状。”

尽快确定HTML5标准,实现多平台、多浏览器的统一和兼容才能让HTML5具有说服力,让开发者放心地拥抱HTML5的未来。

不过,从另一个角度看,担心HTML5能走多远,可能只是杞人忧天。知名互联网评论家Keso认为:“HTML5的潜能正等待挖掘,未来也许根本看不见一个叫浏览器的东西。”因为HTML5可以打包成APP的形式。换句话说,就算我们不再需要Web或Web应用了,但HTML5仍可作为多种应用开发语言中的一种而存在,只不过再度回到HTML5之前那样的混乱。从这个意义上来说,“2022年”还是值得等待和期待的。

html5的发展历程和由此引起的政治斗争的更多相关文章

  1. html5的发展历程

    20年磨一剑,HTML5作为下一代Web标准,她的语义之美.人性之美.简单之美.实用之美……如同一场革命,将Web从内容平台推向标准化的应用平台,并一统各在平台阵营的标准.2008年,HTML5发布首 ...

  2. 1.html5 学习要求,Html 5发展历程

    以下是我在学习html5,项目中用到的关于html5的总结和心得. 1.学习要求 Html4.01,xhtml Css2 Javascript 耐心,动手,毅力. 2.Html 发展历程 Html1. ...

  3. DQN(Deep Reiforcement Learning) 发展历程(五)

    目录 值函数的近似 DQN Nature DQN DDQN Prioritized Replay DQN Dueling DQN 参考 DQN发展历程(一) DQN发展历程(二) DQN发展历程(三) ...

  4. 【Fiori系列】浅谈SAP Fiori的设计美感与发展历程

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[Fiori系列]浅谈SAP Fiori的设计美 ...

  5. C#与C++的发展历程第三 - C#5.0异步编程巅峰

    系列文章目录 1. C#与C++的发展历程第一 - 由C#3.0起 2. C#与C++的发展历程第二 - C#4.0再接再厉 3. C#与C++的发展历程第三 - C#5.0异步编程的巅峰 C#5.0 ...

  6. Linux实战教学笔记03:操作系统发展历程及系统版本选择

    标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...

  7. C#与C++的发展历程第一 - 由C#3.0起

    俗话说学以致用,本系列的出发点就在于总结C#和C++的一些新特性,并给出实例说明这些新特性的使用场景.前几篇文章将以C#的新特性为纲领,并同时介绍C++中相似的功能的新特性,最后一篇文章将总结之前几篇 ...

  8. C#与C++的发展历程第二 - C#4.0再接再厉

    系列文章目录 1. C#与C++的发展历程第一 - 由C#3.0起 2. C#与C++的发展历程第二 - C#4.0再接再厉 开始本系列的第二篇,这篇文章中将介绍C#4.0中一些变化,如C++有类似功 ...

  9. Java的发展历程

    Java的发展历程充满了传奇色彩. 最初,Java是由Sun公司的一个研究小组开发出来的, 该小组起先的目标是想用软件实现对家用电器进行集成控制的小型控制装置. 开始,准备采用C++,但C++太复杂, ...

随机推荐

  1. Zepto中文API

    原文地址:http://zeptojs.com/ 译文地址:http://www.html-5.cn/Manual/Zepto/ Zepto是一个轻量级的针对现代高级浏览器的JavaScript库,  ...

  2. 默認打開pr_debug和dev_dbg

    作者:彭東林 郵箱:pengdonglin137@163.com 日期:2016-08-26 18:04:14 在進行Linux驅動開發時經常見到使用pr_debug和dev_dbg打印驅動的log, ...

  3. Spring应用教程-2 方法注入

    作者:禅楼望月(http://www.cnblogs.com/yaoyinglong) 我们通常使用lookup方法注入,它可使Spring替换一个Bean的抽象或具体方法,返回查找容器中,其他Bea ...

  4. SQL Server中参数化SQL写法遇到parameter sniff ,导致不合理执行计划重用的一种解决方案

    parameter sniff问题是重用其他参数生成的执行计划,导致当前参数采用该执行计划非最优化的现象.想必熟悉数据的同学都应该知道,产生parameter sniff最典型的问题就是使用了参数化的 ...

  5. JS的一些日期操作

    以下语句,作者都亲自整理,并调试过,转载请注明出处 var nowDate = new Date(); nowDate.getYear(); //获取当前年份(2位) nowDate.getFullY ...

  6. Node魔法堂:NPM入了个门

    一.前言 NPM作为Node的模块管理和发布工具,作用与Ruby的gem.Python的pypl或setuptools.PHP的pear和.Net的Nuget一样.在当前前端工程化极速狂奔的年代,即使 ...

  7. 相同版本的CDH集群间迁移hdfs以及hbase

    前言 由于项目数据安全的需要,这段时间看了下hadoop的distcp的命令使用,不断的纠结的问度娘,度娘告诉我的结果也让我很纠结,都是抄来抄去, 还好在牺牲大量的时间的基础上还终于搞出来了,顺便写这 ...

  8. Android Studio导入项目非常慢的解决办法

    问题 Android Studio目前已经更新到2.0 Preview 6了,作为Google大力推崇的开发工具,相对于Eclipse ADT有着不可比拟的优势.然而在实际使用时,依然有不少不爽的地方 ...

  9. js观察者模式学习

    function Events(){ var obj = {}; this.on=function(key,fn){ var stack; stack = obj[key] || (obj[key] ...

  10. The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported.

    当Insus.NET尝试解决此问题<When using SqlDependency without providing an options value, SqlDependency.Star ...