写点什么

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

  • 2013-03-16
  • 本文字数:2553 字

    阅读完需:约 8 分钟

时至今日,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 技术发展前景的看法。

2013-03-16 05:374456
用户头像

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

关注

评论

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

GrowingIO 增长平台产研项目管理实践

GrowingIO技术专栏

项目管理 程序员 Jira growingio

跨域背后的故事(一)-----同源策略

卢卡多多

浏览器 同源策略 6月日更

ONES CTO 冯斌 | 大型团队敏捷项目管理实践与思考

万事ONES

项目管理 研发管理 团队协作 ONES 研发工具

可视化及时把控营运状况,助力管理效率提升80%

一只数据鲸鱼

数据可视化 智慧城市 智慧园区 三维可视化 智慧楼宇

和12岁小同志搞创客开发:如何选择合适的控制器?

不脱发的程序猿

DIY 创客开发 如何选择合适的控制器?

助力碳中和,EMQ与SAP共同构建绿色IoT解决方案

EMQ映云科技

开源 5G 碳中和 SAP 碳达峰

联想积极参与CSMM标准制定和推广,推进中国软件产业高质量发展

科技热闻

Java 并发编程—— Executors 分析应用

Antway

6月日更

技术实践丨体验量子神经网络在自然语言处理中的应用

华为云开发者联盟

自然语言处理 量子 量子神经网络 量子模拟

WorkPlus Lite 企业级移动平台

BeeWorks

Pandas之:深入理解Pandas的数据结构

程序那些事

Python 数据分析 pandas 程序那些事

缓存与数据库的双写一致性

leonsh

MySQL redis 缓存

如何解决回归任务数据不均衡的问题?

华为云开发者联盟

深度学习 模型 标签 数据不平衡 DIR

只记得文件类型如何用EasyRecovery实现恢复?

淋雨

数据恢复 EasyRecovery 文件恢复 照片恢复

为什么聪明的程序员会写出糟糕的代码

实力程序员

机器学习入门:多变量线性回归

华为云开发者联盟

机器学习 多变量线性回归

react源码解析11.生命周期调用顺序

全栈潇晨

react.js

应对全场景AI框架部署挑战,MindSpore“四招”让你躺平

华为云开发者联盟

深度学习 AI mindspore 算子 ai框架

来自 Apache APISIX committer 的经验分享 —— 编程之夏专访

API7.ai 技术团队

后端 技术人 API 网关

技术干货 | 如何实现对动态PPT的云端录制?

ZEGO即构

音视频 WebRTC RTC 即构 动态PPT录制

WorkPlus私有化「数智融合」移动平台

BeeWorks

云小课 | 华为云KYON之私网NAT网关

华为云开发者联盟

网关 华为云 KYON企业级云网络 私网NAT网关 重叠组网

平阴玫瑰×浪潮云洲:见证一朵玫瑰的绽放

云计算

Java字符串池、常量池、intern的爱恨纠葛

叫我阿柒啊

Java 常量池 intern 字符串常量池

Python——列表元素的增删改

在即

6月日更

产品策略闭环是个什么环?

万事ONES

项目管理 研发管理 ONES 产品策略

Dokcer Compose部署Nebula Graph配置文件

阿呆

配置信息

读深入ES6记[四]

蛋先生DX

ES6 6月日更

5000字 | 详解 Java 中的 21 种锁

悟空聊架构

Java 读写锁 锁升级 6月日更

【Flutter 专题】107 图解自定义 ACEPageMenu 滑动菜单 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

项目管理100问 | 研发团队如何实现无缝协作

万事ONES

项目管理 ONES Project 研发团队

移动平台上的HTML5技术是否华而不实_JavaScript_崔康_InfoQ精选文章