[Mugeda HTML5技术教程] 开篇: HTML5 - 生存,还是毁灭
摘要:HTML5并不试图解决所有问题。但是在很多适合的场合,HTML5是不二选择。
To be, or not to be, that is the question. -Hamlet
生存,还是毁灭,这是个问题。-《哈姆雷特》
这句500年前困扰哈姆雷特的两难选题,用来描述今天很多商业决策者和技术爱好者在面对HTML5技术时的心境,可谓再合适不过了。业界存在无数混杂的声音,上至业界大佬,下至技术票友,都为HTML5号过脉,算过命,开过方,押过注。苹果公司的乔帮主曾以一篇《Thoughts On Flash》(《Flash之我见》),祭起了黑Flash挺HTML5的大旗,掀起了第一波对HTML5的广泛关注,HTML5的支持者欢欣鼓舞:Flash的冬天来了,HTML5的春天还会远吗?然而两年后,脸谱公司扎克伯格在TechCrunch上公开承认其HTML5战略的失败,似乎又为HTML5当头泼了一瓢冷水。诸多媒体的推波助澜,众说纷纭,更让这个问题变得更加扑朔迷离。那么,我们应该怎么看待HTML5的前景呢?
首先咱们来同步一下对HTML5的认识。HTML5它首先是HTML, 互联网的通用语言,这是它的本质。这一点上他和他的前辈们没有区别,也都是由一些页面标签(Tag)、样式表(CSS)和脚本语言组成的。这个本质决定了,有互联网存在,HTML5就不会消失。HTML5是HTML升级的必然产物,就好像手机升级操作系统一样正常。互联网越是普及,HTML5也就会随之普及,直到一天,当它变得如此普通,而没有人会特别留意到它的存在或者是质疑其存在。举个例子吧,网页设计师和工程师应该都和div标签打过交道,而div其实是在HTML的第4版才正式被吸纳。今天大家讨论的
然而HTML5之所以不同于之前的HTML版本,是因为它第一次将丰富互联网应用程序(Rich Internet Aplication, RIA) 作为其设计目标,并围绕此目标定义了一整套的应用开发规范。在HTML5出现之前,HTML更多的是提供单纯的内容展示和界面交互(听听名字就知道其初衷:超文本标记语言,文本和标记是亮点)。而正是由于这个定位的束缚,在HTML5出现之前,在HTML发展的10多年间,在网页应用领域没有太大的突破。RIA相关的需求(视频、音频、动画、3D等)均通过第三方浏览器插件的形式提供,其中大家最熟知的莫过于Adobe公司的Flash内容了。那么,既然HTML在这些第三方插件的支持下和平共处了这么长时间,为什么现在有必要定义新的规范来支持RIA呢?
原因是多方面的。最本质的原因是因为互联网尤其是移动互联网的发展到今天,旧的互联网技术架构已经不能满足新的互联网应用的需求了。这主要体现在设备多样化带来的新变化上。这些变化包括:
1)设备多样性。如今谈到互联网设备,已经不再局限于Mac, PC, Linux/Unix的范畴,而是PC、智能手机、平板电脑、智能家电等。在一个微波炉上都可以看YouTube视频的互联网时代,要为如此众多而千差万别的设备开发应用,一定需要一个跨平台的解决方案。之所以需要一个跨平台的解决方案,一个重要的原因是开发成本。举个例子来说,某知名电子商务企业在今年双十一期间,同时在PC端和移动端推出了小游戏促销活动。为此,该企业在开发了PC端的Flash小游戏版本后,同时需要再为移动网站同时开发一套HTML5的版本,而且其成本与开发一个Flash游戏相当。这无疑是增大了企业的负担,从长远看,这种模式是不可持续的,必将被一个统一的跨平台解决方案替代。而放眼目前市面上的技术,HTML5是最具备这种跨平台能力的技术,没有之一。
2)能耗需求:移动互联网加剧了对新的HTML5标准的需求。智能手机的续航能力,对承载移动富媒体应用的技术提出了很高的能耗需求。而传统的Flash技术,总的来说还是WinTel时代的产物,其体系架构和WinTel架构有着千丝万缕的联系。而微软和英特尔,大家都知道是移动互联网时代的难兄难弟。就在大约一个月前,高通的市值刚刚超过了英特尔。英特尔芯片的高能耗,使其在移动芯片领域饱受诟病,举步维艰。有人说Adobe可以重新设计一套架构啊,这个说法理论上成立,对于一个有着逾20年的软件,绝非一朝一夕之功。一个小插曲:Google当年曾经和Adobe一起合作采用Flash开发Google TV上的富媒体应用,最终由于系统改动的巨大代价而放弃了。
除此之外,还有很多商业上的原因。例如,苹果公司之所以极力推广HTML5贬斥Flash,有一个重要的原因是看到Flash作为潜在的应用平台对其应用商店(App Store)的商业模式产生冲击。如今苹果虽然允许Flash AIR(采用Flash制作的移动应用)在应用商店上架,但这些应用全部都是阉割了平台功能只能作为单独应用存在。再如,苹果、谷歌、脸谱、微软这些互联网新旧大佬,也不愿意再看到Adobe公司在移动互联网的富媒体方案上延续其垄断地位,而自己也没有能力再另起炉灶开一个新山头(参考微软的Silverlight),那就趁重新洗牌的机会,一起拥抱开放的标准吧。需要指出的是,这些商业上的博弈,应该说是在移动互联网发展大的洪流下的小浪花,不管这些商业公司主观上是否愿意,客观上都是顺应发展大势,并起到了巩固HTML5地位的效果。
有人说,移动设备的未来是移动原生应用程序(Native Apps), HTML5竞争不过原生应用程序。这句话其实是一个误区,或者是个伪命题。因为这句话的前提,是把原生应用和HTML5放在不是你死就是我亡的场景中。而这并不是HTML5存在的初衷,也不是HTML5发展的方向(替代原生程序)。打个比方,今天如果有人说“电影竞争不过电视”, 估计不会有人有兴趣听,而在电视诞生的初期,的确有过”有电视了,谁还会花钱去看电影呢?”的观点。而在今天电视和电影都是巨无霸产业,各自为了不同的消费需求而公共存在,相互促进。HTML5和Apps的关系也类似,各自为了不同的需求而存在。其实这个也很好理解,在WinTel时代,网络浏览器和应用程序和平共处了几十年,谁也没有替代谁,因为他们面对的应用和目的不同。在原生应用的领域,由于性能的原因,HTML5不会比原生应用表现得更好,这也是脸谱CEO扎克伯格所描述的场景(有兴趣的可以找来扎克伯格在TechCrunch上接受采访的视频看看)。同样的,HTML5也有其擅长的领域,核心就是移动互联网(Mobile Web),原生应用无法有效的进入。注意这里说的移动互联网,指的是直接利用移动浏览器(包括其控件)渲染的内容而不是指广义的采用网络服务接口(Web Service Interface)的内容,后者包括了移动原生应用。
这个说起来比较抽象,具体来说,为移动网站提供内容,尤其是动态内容和富媒体内容,是今天也是将来移动互联网一个发展的重镇。是HTML5当仁不让,舍我其谁的领域。有人说,现在大家都用Apps,谁还用移动设备上网啊?让我们来看看几个数字:世界上有超过6亿网站,而且每年以逾5千万的速度增长。根据苹果的官方数据,几个月前iOS上的应用超过了1百万, Android的应用也相当。也就是说,绝大部分互联网内容,仍然是通过网站上的网页来传递的。和原生应用相比,移动页面内容,在实时传递、设备兼容性、内容共享、更新升级、维护成本等诸多方面,都有很多优势和亮点。且不说大量的所谓原生应用,其实是采用移动页面在呈现内容,单是用移动浏览器上网的规模,即将全面超过PC浏览器的用户,在有些国家(例如英国)则是已经实现了。大家可以参考下面这张图,很说明问题。移动上网和移动应用一直都在同步增长,不存在相互替代,此消彼长的关系。因此,放弃移动网站的内容,就已经在移动抢山头的竞争中,输了一半了。
除了移动网站上的页面,有一些特定的移动应用场景,HTML5也是最佳选择,举例来说:
1. 移动广告和营销。据一项Jivox在2013年10月进行富媒体的超过100家广告代理参与的调查显示,移动广告对传统静态条幅广告的需求,下降了逾40%, 而同期对富媒体广告的需求,则增长了逾50%。富媒体广告将会是移动广告发展的一个大方向。而富媒体广告完全是建立在HTML5的基础上的,因为不可能让用户为了观看一个广告而安装一个单独的移动应用。国际广告联盟(IAB)规范中的移动富媒体部分,也是按照HTML5为基础制订的。
2. 微信官方账号。微信官方账号越来越成为商家必争的互联网入口之一,而基于HTML的内容页成为了这些账号页面必不可少的部分。因为通过微信官方账号直接观看的内容,是直接呈现在微信内置浏览器中的。如果想要在账号中引入丰富的应用特性,例如视频、动画、交互、游戏等,正是HTML5大施拳脚的地方,而移动应用则无法有效进驻。
3. 跨平台混合应用。充分发挥原生应用高性能,和HTML5应用跨平台特性的混合应用,越来越得到企业和开发人员的青睐。2013年11月份一项Kendoui网站发起的逾3500公司决策层(CIO, CTO)和开发人员参与的调查显示(参见下图), 超过92%的移动移动应用选择不同程度的引入HTML元素,而且比例呈上升趋势。这也很直观的说明了HTML5内容的生命力。
总结一下,HTML5,生存还是毁灭,这是一个伪命题。HTML5和原生应用并不是有你没我的生死之争,两者分别代表的移动应用的两种需求,共同存在,一起发展。随着移动互联网的壮大,HTML5只会越来越多的被企业和开发人员采用,这是行业发展的自然选择过程和必然结果。