资深移动开发专家Ben Savage最近撰文表示,HTML5在2012年的发展程度远没达到预期,并分析了其中的原因,主要包括跨平台的HTML5技术障碍、消费者的下载习惯、移动设备的适配问题等。
Ben Savage在今年年初的时候曾经对HTML5的发展做出了乐观的预测,包括:
2012年,HTML 5将会增加对更多实用API的支持,让网站彼此连接。例如,Facebook上运行在iframe标签中的Zynga游戏,通过使用新的postMessage API,将可以直接在Facebook框架内进行通信。而在HTML 5之前,窗口内的通信必须依赖远程服务器,或许借助让人爱恨交加的黑客。除API外,HTML 5还将新增跨域资源共享(Cross-Origin Resource Sharing,即CORS),这将有助于实现不同网站之间的信息共享。例如,通过CORS,初创企业可以为用户提供照片编辑服务,从Facebook上下载照片、编辑修改、重新上传。由于HTML 5中许多新的语义信息,开发从web页面中提取信息的web工具将变得十分容易。我们将看到越来越多的糅合(mashup)服务,以及越来越好的浏览器模式(如阅读器和翻译工具)。
那些热衷于把来自iOS设备庞大流量货币化的网站站主们将诉诸于HTML 5广告。同时,越来越多的初创企业也将进军这个新兴市场,解决必将会面对的安全、创作工具等问题。既然HTML 5具备了Flash广告几乎所有的效果,以及部分Flash广告没有的效果,HTML 5广告取代Flash广告是迟早的事。
2012年,可能会经常看到人们在自己的移动设备上玩各种简单的HTML 5游戏,如Zynga Poker、Words with Friends和Mafia Wars等,这些游戏即可在目的网站,也可在本地应用上运行。不过,移动设备上成功的HTML 5游戏将仅限于以下几种:菜单类、纸牌类、棋盘类、回合制多人游戏,以及头像定制游戏,而像Zynga “Ville”这种复杂、视觉密集型的游戏在2012年的发展空间可能不是很大。
但是现实的发展并没有达到Ben Savage的预期,在年末的总结中,他列举了HTML5发展在移动领域发展的五个问题。
跨平台HTML5开发并未普及
桌面端和移动端HTML5之间的分裂还是巨大的,这两者之间没有形成一个统一的开发标准,主要原因就在于以下的这三点差异:
最理想的情况就是针对特定平台进行产品开发,这样开发者就能对应用的外观、感觉和功能等进行相应的个性化设置,从用户体验角度来说这也是极其重要的。然而很多人对HTML5的预期就是HTML5应用可以实现跨平台访问,比如说从桌面端访问移动HTML5应用。不过从现实情况来看,用户也只能选择一个应用能更好的运行的平台,因为当前的跨平台HTML5并不完善。 通常开发者的观念就是说到移动端的时候,HTML5应用就必须是为移动用户开发的。没有什么比开发者们不愿意将时间多花在跨平台HTML5应用的开发上更让人沮丧了,而到最后你才发现其实你的用户是个多平台设备用户,在某一个平台上不能完美体验你的HTML5应用的时候,用户就有可能离你远去。
人们更习惯于通过应用商店下载应用
为移动设备创建一个带桌面图标的HTML5浏览器链接非常容易,但是想改变人们对应用的传统观念还是比较困难。人们往往习惯于被告知去下载某一个应用,用户本能的反应就是通过应用商店去搜索应用,而占主导地位的苹果和谷歌的应用商店迄今为止还没上线过一款HTML5站点应用。Facebook创建的通用商店“universal store”提供了原生应用和HTML5网页应用供用户选择,在很多人看来这将会成为Facebook的商店战胜苹果和谷歌的应用商店的一大有力举措。为了说服更多的开发者投身HTML5应用,Facebook甚至在W3C联盟下建立了一个开发者网络,但是到目前为止,它的这一举措还没有显现出足够的吸引力。
混合应用不能依赖移动浏览器
在我的想法中至少要有一款主流主机游戏是使用WebGL技术开发或者再版,游戏巨头EA就曾发布了HTML5版命令与征服泰伯利亚联盟(Command & Conquer Tiberium Alliances),然而最大的问题所在就是作为移动浏览器中的佼佼者Chrome和Safari都并没有完全支持HTML5技术的意向,举个例子来说,主流移动浏览器Chrome和Safari等就不支持WebGL技术,而这是HTML5 3D游戏开发的核心技术所在。
跨平台HTML5应用的兼容性是一大问题,但是移动浏览器的速度也是制约HTML5移动应用发展的因素之一。有报告曾显示HTML5在移动浏览器中的访问速度比起桌面端HTML5应用的速度要慢上十到七百倍左右,事实研究证明移动浏览器的HTML5应用的平均速度要比桌面端低889倍。而当前的主流 HTML5应用大都是图形化应用,受移动网络网速的影响,移动端HTML5的用户体验是比较糟糕的。
不同移动设备间的适配问题
在HTML5发展的过程中,那些已经建立了一个网站的开发者们就曾经历过很让人头疼的浏览器兼容性和跨平台适配问题。举个例子来说,Gamzee的一位工程师Sean Soria就曾描述过他们在为Facebook的HTML5博客开发Skyscraper City应用的时候所面临的问题:在编写代码的时候他在文档对象模型(DOM)中使用了一个伪3D转换CSS代码,它能触发大多数移动设备的硬件加速能力,而且这种方法比使用Canvas元素表现要好很多,非常不错的一种方法,但是问题就是Android手机并不支持。这样的问题还有很多,往往不同设备之间HTML5应用所面临的问题和解决方法都不一定是相同的。
基于网页的WebApp短期内将遇到发展瓶颈。因为标准化问题和终端设备功能的支持程度,很难在短时间内找到确切的解决方案。
HTML5还不够强大
从我所已经看到的来说,炒作已经导致许多人高估了有多少开发人员喜欢使用JavaScript这一现状,JavaScript用于跨平台开发的强大是毋庸置疑的,但是这样就能证明JavaScript是HTML5跨平台开发的替代品么?显然不是这样。对于一些较为复杂的应用特别是游戏来说,面向对象法和更强大的手写代码往往更受开发者们的欢迎。
所以从上述几点来看,HTML5在这即将过去的一年的发展远远没达到人们的预期。HTML5可以说是成为了以Facebook为代表的新兴移动互联网一代被高估的替罪羊,如果HTML5能代表未来的话,那么它所代表的未来比起我们能想象到的还要远很多,不过现在谈这些还是有点为时尚早,当然这也不是说 HTML5就没有春天,只是在短期之内还是很难实现的。
InfoQ的读者对HTML5的发展有何见解?欢迎发表自己的看法。