写点什么

HTML5 技术在移动领域的发展未达预期

2012 年 12 月 10 日

资深移动开发专家 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 之间的分裂还是巨大的,这两者之间没有形成一个统一的开发标准,主要原因就在于以下的这三点差异:

  1. 电脑键盘与手机、平板键盘之间的差异;
  2. 两个平台设备的屏幕大小;
  3. 鼠标与触摸屏操作的差异。

最理想的情况就是针对特定平台进行产品开发,这样开发者就能对应用的外观、感觉和功能等进行相应的个性化设置,从用户体验角度来说这也是极其重要的。然而很多人对 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 的发展有何见解?欢迎发表自己的看法。

2012 年 12 月 10 日 23:211039
用户头像

发布了 501 篇内容, 共 211.4 次阅读, 收获喜欢 21 次。

关注

评论

发布
暂无评论
发现更多内容

滴滴Ceph分布式存储系统优化之锁优化

滴滴技术

云计算 分布式存储 Ceph 滴滴技术

数据分析之伯克森谬误:颜值和性格真成反比吗

KAMI

人生 数据分析 数据

C/C++函数指针与指针函数

C语言与CPP编程

c++ C语言 函数指针

实时数仓在滴滴的实践和落地

滴滴技术

大数据 滴滴技术 数据通道服务

C语言与C++常见面试题

C语言与CPP编程

c++ 面试题 C语言

Elasticsearch初步认识

枫林

Java elasticsearch ES

AtmoicXXX与AtmoicXXXArray源码分析

Darren

源码 内存布局 CAS java 并发 AtmoicXXX

腾讯大牛半年心血高级编程PDF,帮你轻松构建企业级Web应用

周老师

Java 编程 程序员 架构 面试

你真的了解 Base64 吗

hepingfly

Java base64 编码

物联网的银河,华为的桨,少年的歌

脑极体

指针变量的传值和传址

C语言与CPP编程

c++ 指针 C语言

我们一起学程序-五子棋

叫练

Java 多线程 游戏 websocket

闲聊胡扯

C语言与CPP编程

随笔杂谈

Docker -快速安装Elasticsearch

枫林

滴滴数据通道服务演进之路

滴滴技术

大数据 滴滴技术 数据服务通道

滴滴数据仓库指标体系建设实践

滴滴技术

大数据 数据仓库 滴滴技术

滴滴云平台事业群——就是稳!

滴滴技术

招聘 滴滴技术 滴滴云平台事业群分享月

1.Flink检查点算法-15

小知识点

scala 大数据 flink

在Rust里面嵌入python代码

lipi

Python rust

Docker 安装和简单使用

枫林

Docker

c语言函数指针之回调函数

C语言与CPP编程

C语言 回调函数 函数 函数指针

【高并发】要想学好并发编程,关键是要理解这三个核心问题

冰河

写作 多线程 高并发 同步 分工

缓冲区溢出

C语言与CPP编程

c++ C语言 缓冲区 堆栈溢出

浮点数比较的精度问题

C语言与CPP编程

c c++

滴滴七层接入平台实践和探索

滴滴技术

运维 滴滴技术 微服务治理 七层接入

出自字节技术专家之手的SpringBoot全栈开发实战,真香

周老师

Java 编程 程序员 架构 面试

Redis做消息队列全攻略

架构师修行之路

redis MQ 消息队列

【Spring注解驱动开发】AOP核心类源码解析,这是最全的一篇了!!

冰河

spring aop ioc

自定义线程池来实现文档转码

架构师修行之路

Zeppelin SDK :Flink 平台建设的基石

Apache Flink

flink

架构师训练营0期 第十二周作业

WW

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

HTML5技术在移动领域的发展未达预期-InfoQ