移动平台上的 HTML5 技术是否华而不实

  • 崔康

2013 年 3 月 16 日

话题:JavaScriptHTML5语言 & 开发架构文化 & 方法

时至今日,HTML5 技术已经不再是停留在纸面上的标准了,越来越多的公司和开发者尝试把 HTML5 技术应用到前端领域,到底 HTML5 能够对移动开发者带来多大的改进?它的前途是否值得期待?社区对此褒贬不一,有人认为 HTML5 的优势无可比拟,机会越来越多,有人则持不同观点,认为有炒作之嫌,HTML5 在实际应用中存在诸多现实问题。

刘铁锋认为基于 HTML 5 的开发会越来越多,主要基于三点原因:

  • 入门的门槛(影响了开发者的基数和成本)
  • 开发的成本(雇佣多个平台开发人员,还是一个平台开发人员)
  • PC 上的发展趋势

同时,他也指出目前 HTML5 的开发还不成熟,可以归纳为以下几点:

  • 浏览器内核能力不够强(渲染速度、界面响应速度、通过 GPU 加速的能力)不够,对于基本 HTML 5 的标准支持并不是最大问题。PC 的浏览器已经接近完全,手机上海豚浏览器的内核已经可以达到 480+, 通过 Facebook 的 Ringmark 测试的 Ring 1 (非广告,只是为了说明技术上的可行性).
  • 浏览器访问移动设备的能力(标准的发展和用户的需求有差距)
  • 浏览器的编程模型的限制(单进程的模型,依赖于 DOM 数据处理的模型)

刘铁锋认为困难是暂时的:

目前手机的硬件能力已经在提升,双核 1G,Android 4.0 的 MTK 山寨手机已经只要 500 块。双核 1.5G 只要 900 块。性能不会是最大瓶颈,那么 PC 上已经跑起来的典型应用,在手机上都会起来。如果对比 PC 上的发展局面,其实已经展示了手机 HTML 5 发展的未来。

王亞暉指出了 HTML5 的两个关键优势:

  • 跨平台特性,基本上有浏览器的地方就能有 HTML5 应用。
  • 相对开发成本较低,学习曲线并没有传统游戏开发那么陡峭。

他提到了自己去年的实际开发经历:

我前半年一直在做一款有点社交和 LBS 性质的纯 HTML5 的 webapp,前端纯粹 HTML5,后端 Scala,现在又在纠集了几个朋友做一款 HTML5 的大型页游,前端 HTML5,后端 node。之所以不选择 Flash 是因为,对于移动平台的支持度很糟糕同时,Flash 本身也是浏览器不稳定因素的诱因之一。

这个(注:指跨浏览器)其实据说挺容易的,我身边是一个以前 Opera 的人在做,据说比 Opera 做 hack 容易的多。我自己也试过把网上一些现成 HTML5 游戏做跨平台跨浏览器移植,确实不是很麻烦,一些现有的解决方案能给人省掉 90%的开发时间,也绝对比我之前适应 Android 各个系统各个分辨率各个商店的体验开心的多。

HTML5+Node.js 基本上是一个天生适合做游戏的搭配,网易不久前出了一个叫 pomelo 的游戏引擎,磊友马上也要出一款 HTML5 的大型页游,我也听说几家大公司也在做类似的开发,同时我认识一个在厦门的团队也野心勃勃的做一款 HTML5 的大型 3D 页游。如果不出意外估计明年底后年初会是一个纯 HTML5 游戏的爆棚期。传统的 web app 也是如此,我前几天去 Mozzila 串门,看了一下 FirefoxOS 上的一些东西,表现还是非常的惊艳。

王亞暉特意澄清了 HTML5 被妖魔化的一些方面:

  • 运算速度慢——这个确实是,尤其是手机上。但计算机行业什么时候运算速度成了限制,想想 5 年前手机的原生程序是什么一个状态,再看看现在的,五六百就能买到一个跑 3D 游戏的智能手机了。而且事实上 iOS 开了一个很好的头,Safari 有硬件加速,所以效率极高,基本上 web app 的延迟是在一个完全可以接受的范围之内。相比较本地处理能力,真正大的问题在网速和电池上。这个确实短期不好解决。但在 PC 上,这也不是问题。
  • 版本分裂——这个基本上跟开发者关系不大,而且真正分裂的焦点是在版本进度把握上。只是一个希望把标准写死了,一个希望更灵活。

对 HTML5 技术持相反意见的开发者也不少。

王斌认为 HTML5 技术是一场炒作,“因为周围,无论国内还是国外,都是叫好不叫座”。具体来说:

  • 功能和性能有限。就拿 HTML5 中最大的亮点 Canvas 来说,想用这玩意取代 Flash,基本是不可能的。Canvas 才提供多少个 API,那几个绘图函数实在太简陋,和 Flash 极其强大的各种特效相比简直大巫见小巫,更别提 Flash 的动画能力了。
  • 用 JS 来做动画和特效,效率太低。Flash Player 里面对各种浮点数、矢量绘图的优化,简直到了超越普通硬件加速的地步。
  • 现在 HTML5 已经开始分裂了,分裂成两个标准。本来就不是标准的东西,还继续分裂···前途简直没有。
  • 开发工具几乎没有,就更别提和 Flash IDE 相比了···
  • 各种浏览器支持的也有限。拿 PC 上的 Chrome 去打开那些所谓的 HTML5 的站点,经常卡死。要知道 Chrome 的核心 dll 一个就接近 50m,这么庞大的东西,支持 HTML5 还这么差,更别提移动设备那些有限的资源了。我是觉得,那些手机浏览器,解析各种 HTML4 的网页都不一定标准,就更别提 HTML5 了··

他总结道:

那些赞美 HTML5 的,基本都是一厢情愿而已。尤其 IE6 都还坚挺,XP 还占据 40% 市场的中国,想推广 HTML5,太难。10 年前有人大呼什么 IPV6\ X64 之类的时代要到了,可目前可以说还是早的很。十年前我就在关注一项矢量绘图技术:SVG,绝对比 Canvas 绘图能力强大,可惜一直没有商业公司推广,以至于现在几乎没人知道。

再进一步,所谓的 HTML5,之所以拿出来炒,最大的原因恐怕还是乔布斯这人,想在商业上踢翻 Adobe。要知道 Flash 一旦成为标准,在对开发者要求极其苛刻的 iOS 平台,一切都将可以绕过苹果的限制。所以乔布斯才出如此极端之做法。现在乔布斯已逝,HTML5 的前景堪忧啊。

除此之外,还有不少讨论者持类似的态度,他们认为 HTML5 存在的主要问题,包括以下几点:

  • 开放式标准带来的问题是,没有能真正提供一个好生态环境及开发体验。很多开发者都有“我不知道该用 HTML5 做什么” 的感觉。
  • HTML5 的权限、API 都不够用,很多本地随手就实现的功能 HTML5 得折腾很久。JS 的调试也很麻烦。好不容易开发出来了,素材,代码都不能加密。
  • 动画效果,HTML5 的加载速度慢,帧率跟本地比明显不够。
  • HTML5 完全是牺牲体验的典型。所谓的跨平台如果是通过增加开发难度,功能性能缩水来实现也就毫无意义了。宁可在一个平台上做 80 分,也不要在两个平台上各得 50 分。
  • 基于 HTML5 的应用,需要浏览器进行执行,如果是 Firefox OS 这类浏览器操作系统,耗电问题可能会得到一定程度解决。但是安卓上的浏览器或 iOS 浏览器再执行 Web 应用,势必会更加耗电。

有关社区讨论的详细内容,读者可以查看知乎社区的相关文章。欢迎读者特别是前端领域的开发者发表对 HTML5 技术发展前景的看法。

JavaScriptHTML5语言 & 开发架构文化 & 方法