目前的 HTML5 开发跟一年前比进展如何,国内国外有没有区别?
程序员文章站
2022-04-14 13:52:25
...
注:问题来自「知乎圆桌」• 移动变局下的机会选择:非移动开发者向移动转型主题讨论,由CSDN和《程序员》杂志总编辑刘江老师提问。参与嘉宾包括:
HTML5作为开放式标准,成效是明显的。如同现在浏览器继续分化的情况下,但兼容性却呈现出越来越好的优势。现在做网站的同学们应该感到高兴。
但开放式标准带来的问题是,没有能真正提供一个好生态环境及开发体验。
Google在这上面做出了很多贡献,他给你看了很多酷炫的应用,但从没有告诉过你这些应用是怎么做出来的。这就是缺乏统一或是真正好用的开发体验,对于开发者而言显然是不公平的。其它厂商也是。
而封闭的标准:Apple的iOS快速的形成了自己的生态圈 ,当年的Flash也很快的降低了大家在交互式界面的入门门槛形成了多年的繁荣。
而HTML5现在还是各自为战,相对于其它平台无论是Runtime还是IDE,每年一个或几个版本的迭代速度,HTML5在向前前进的路上,的确慢了很多。
很多开发者是不是都有:“我不知道该用HTML5做什么” 的感觉。 由于桌面浏览器多被IE霸占着,所以HTML5可以另外发展的地方是移动终端。现在的移动终端多为IOS或者android系统,就算是低版本的android不支持HTML5,在高版本中也可以解决这个问题。毕竟浏览器是直接绑定在移动系统中的,所以要升级到新版本并不难。
但是,移动端的浏览器支持HTML5是不是划算呢?有哪些好处?
(特性参考了腾讯CDC的HTML新特性介绍 http://cdc.tencent.com/?p=4012 )
首先,HTML5的video标签是一个特色,但是除非是在有wifi的地方,大家也不太可能用pad或者手机上网看视频。所以,这一方面还有待基础设施的建设发展,比如像杭州的wifi热点覆盖等。在基础设施发展到一定阶段,带宽占满,按流量收费改为包月或者计时收费时,大家普遍地用移动设备在线看视频这件事才会产生。
其次,绘图功能。流畅的绘图功能需要图形处理器的支持,手机上现在也越来也多的为了游戏效果而加GPU,所以对HTML5的绘图功能应该是可以很好支持的。
再次,位置服务。LBS(基于位置的服务)是现在的一大热门,也是一种手机功能的革新。HTML5本身就带有Geolocation API,允许用户共享现在所处的位置,并且获得其他的服务。移动性,这一点是桌面浏览器上的HTML5所不具备的优势。
最后,离线存储。这一特点对移动WEB应该的帮助也是显而易见的。移动端WEB应用由于费用的原因比桌面WEB应用更珍惜用户的流量。离线存储可以将js文件、CSS文件甚至是一些数据文件缓存在手机上,当数据发生改变时才将改变的部分与服务器进行同步。这样就避免了用户重复从服务器下载相同的东西而导致流量的浪费。
虽说有以上这些好处,但是真实开发手机端的web应用时,调界面这件事很让人头疼。而且很多时候用户的权限是不打开的,比如要使用Geolocation API时……
但我认为,HTML5的标准化还是值得坚持的,现在像是一个过渡期,过渡期的阵痛在所难免。想想当时浏览器各开各花的时候,那也是很头疼的时期,要用各种hacks来达到一样的效果。程序员的工作也很繁杂。所以,还是希望浏览器厂商能协同一致的遵守某个用于页面展现的标准,然后只在速度和解析效率上做竞争似乎会更好一些。 作为一个不怎么关心 HTML5 的移动开发者,这一年我没有看到特别多的针对 HTML5 的正面消息,倒是听到了一些负面新闻。最大的负面消息莫过于 Facebook 开始转而使用 本地 UI 构造 iOS 版的客户端。这和去年乃至前年热火朝天的讨论大相迳庭。
出处(需西厢):http://www.facebook.com/notes/facebook-engineering/under-the-hood-rebuilding-facebook-for-ios/10151036091753920
事实上,我对 HTML5 并不看好。理由是多方面的。
我不是很赞同前面几位朋友提到的 HTML5 对终端设备依赖性较低的说法。从我个人的经验来看,网络连接事实上是移动设备的耗电大户,即使是作为 HTML5 典范的 Chrome for Android 和 Safari for iOS 也不例外。受限于 HTML 协议和 Javascript 贫弱的二进制处理能力,HTML5 应用往往也不能像本地客户端那样使用压缩的二进制协议节约传输时间和带宽,反而需要消耗处理器时间做复杂的 DOM 解析。执行效率偏低姑且不论,处理纯文本 XML 数据带来的带宽消耗也是另一个问题。
至于应用体验,我承认做得好的 HTML5 页面的华丽程度令人惊叹。但问题在于:你究竟要花多少时间和精力才能做出那样的效果?和本地界面相比,完成一样的效果(比如滑动动画)是否确实更简单和高效,是所有人都得考量的问题。在 iOS 和 Android 平台,简单的动画效果几乎无需开发者费心,只要用标准控件就自然拥有。而 HTML5 则恐怕不是。
至于一致的观感,这个问题是见仁见智的。我不愿意强求自己的产品在所有平台上观感一致,因为这样让自己的产品和平台整体观感不符。但我也知道很多人仍然相信软件的界面应该在所有平台上一个样子。这一点我无法说服任何人。我只能说,站在我的角度上看,所谓 HTML5 界面的一致性优势,在我看来反而是个减分项。
大概就是这样吧。桌面系统的生态区别很大,也许会有不同。但这就不是我擅长的领域了。 HTML5本年进展如何?
这一年是其从概念阶段切换到了实操阶段,其中有数个里程碑事件。
首先我们看到越来越多浏览器在努力支持HTML5,新推PC浏览器和手机浏览器也会将HTML5兼容性测试作为重要的指标,业界开始重视,如金山新推猎豹浏览器:http://bbs.liebao.cn/thread-67984-1-1.html
其次是基于HTML5的应用越来越多,尤其是基于HTML5的操作系统的成熟化,包括PC端和移动端。
另外就是HTML5现在发展的不成熟的瓶颈或者障碍,个人认为除了设备性能以及标准外,还有很重要的几点。
基于HTML5的应用的好处@刘铁锋已经提得比较全了,但是HTML5应用最大的一个区别是基于WEB的,计算和数据更多是放在云端,对终端设备的依赖性会比较低,包括计算性能和存储性能。既然是基于WEB的,所以就要一分为二来看。
说回第二个问题网络,既然WEB应用将执行放在云端,那么其计算和数据对网络的依赖性可想而知。国内目前的移动网络发展状况堪忧,3G目前走向成熟但是覆盖范围有限。尤其是移动的3G技术本身的局限性导致其不能达到3G的真正的效果,但是仍然覆盖了较多用户;4G目前也存在很多悬念。当然WIFI热点在很大程度解决了网速的问题。不过整体情况是移动网络与PC网络差距巨大;国内网络与国外环境又差距巨大。
上述两个问题是HTML5应用发展的瓶颈,也是手机发展,甚至移动互联网发展的瓶颈,是急需解决的两个问题。
应邀做答。
个人观点,基于如下几个原因,基于HTML 5的开发会越来越多
为什么现在HTML 5 的开发不成熟?
但是目前手机的硬件能力已经在提升,双核1G,Android 4.0的MTK山寨手机已经只要500块。双核1.5G只要900块。性能不会是最大瓶颈,那么PC上已经跑起来的典型应用,在手机上都会起来。如果对比PC上的发展局面,其实已经展示了手机HTML 5发展的未来。
HTML 5的开发是否有进展?
不在于HTML 5的标准,而在于HTML 5的库的发展,有了更好的库就能够更多地减少开发者的工作以及更大范围的普及。如果从这个角度来说,HTML 5的库在蓬勃发展。当足够的高性能库出现的时候,HTML 5应用开发的普及就会顺理成章铺开。 只说Mobile的事。基本上,H5问题严重
最大问题是木有大腿可以抱。iOS有苹果,Android有google,win phone有微软,要钱有钱要人有人。有钱有人的都不一定能成,H5靠啥?谁来做库?谁来做开发工具?谁来写详细到爆的开发文档?谁来建生态系统?谁来建商业模式?谁来收拾刷榜的?谁来解决百度这个bug?
H5号称成本低,招人容易,跨平台容易。问题是,牛叉的用户体验才是前提啊,要是这个做不好,那还说个屁。再便宜的垃圾也是垃圾啊!你要赢,那你的体验必须要比native更好啊,按照这个标准招人来做,你去试试成本是多大,还能不能跨平台。
H5的标准也是扯淡。弄啥标准啊,有毛用。所谓的标准到最后都是几个大厂扯皮的结果啊。一扯就是数年,你慢慢等吧,什么?你说用户感受?啥是用户啊?IT世界有哪个消费品是先制定标准,然后牛逼的?越标准的东西越平庸!干脆别弄标准了,就按用户感受为最高指示来弄吧,问题是那和native app又有啥区别啊?为啥要再弄一个?就为了照顾懒得学其他语言的懒货以及学不会的蠢货么?直说呗,那还谈个屁的用户感受
至于语言、性能层面上的东西,哥都懒得说。Java就是你的榜样,基因不行,再多优化都是废材
至于各个浏览器厂的言论,可以直接无视 说实话,HTML5这东西,我严重怀疑是次培训机构的大炒作(下面有同学指出是浏览器产商的大炒作,有道理,总之正肯定有幕后在推波助澜,想捞点好处)。因为周围,无聊国内还是国外,都是叫好不叫座。具体来说,其一,功能和性能有限。就拿HTML5中最大的亮点canvas来说,想用这玩意取代flash,基本是不可能的。canvas才提供多少个api,那几个绘图函数实在太简陋,和flash极其强大的各种特效相比简直大巫见小巫,更别提flash的动画能力了。其二,用js来做动画和特效,效率太低。flash player里面对各种浮点数、矢量绘图的优化,简直到了超越普通硬件加速的地步,下面摘自一位精研flash player的牛人的话:
Adobe的FlashPlayer在诞生时,那个时候还没有通用的2D矢量显示标准(如OpenVG),其针对软件渲染的2D矢量图形显示可谓是亮点,在经过十几年的发展和优化,Adobe的2D软件矢量渲染引擎可谓是已经发展到尽善尽美了,这也可以解释为什么自FlashPlayer 4到FlashPlayer 8其渲染引擎一直没有太大的变化,也可以解释为什么Adobe FlashPlayer软件渲染的效能甚至会好于使用低端硬件加速的效能了;但,成也萧何败也萧何,过于完美的标准和算法阻碍了使用标准硬件加速的可能(针对特殊GPU的硬件加速,因为其灵活性不在我们的考虑中) (简要评说Adobe的FlashPlayer的渲染算法)
也就是说,你拿低端硬件加速,也不一定拼的过flash player的速度,那js呢?js比c++还慢了数倍,这样的速度去写动画,绝对被用户骂死。
其二,现在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来做移动应用,几乎是不可能的。其一,api有限,比如想和文件系统、其他各种设备交互,现有的API用其来简直捉荆见肘;
其二,权限不够。
其三,用原生语言写出的app尚且如此耗电,有时候,那些网页,肯定都卡爆了,即是说,效率不够。
其四,做出的应用几乎是全裸摆在竞争对手前面,难以加密。
其五,开发工具不够,想写点复杂的东西,累的半死。
你觉得这种情况得多少年才能改善?前面那些说HTML5如何如何的,我想说的是,还是看清现实吧.
-----
补充:
不管做哪种应用,HTML5都有各种不可饶恕的缺陷。
.....首先如果拿HTML5来做手机应用。如果是普通工具类型的APP,那界面部分确实可以省一些工作量。用网页来做界面确实比native方便很多,但一般来说界面只是工作量的一部分,大部分后台逻辑还是得在native来做。所以HTML5的优势不是特别大。
..... 如果用HTML5来做手机游戏, 那问题就大多了。首先就是效率问题,用JS这种东西,再怎么优化也达不到native的程度,这点你也许会说chrome的效率已经够高了,但并不是所有手机都装了chrome,这其实就牵扯到第二个问题,兼容性问题。要解决效率问题就得解决兼容性问题。但目前安卓上浏览器种类太多了,每种对html5的支持不一样,对JS的运行效率也不一样。而大部分游戏对效率要求肯定是越高越好。非要牺牲native的性能优势,而花那么大精力去整html5干嘛呢?其实无非就是因为html5开发上稍微方便点,移植简单点。但对于手机游戏,本身就有cocos2等方便移植的引擎,开发、运行、移植效率也高,何乐而不为呢。
..... 如果用HTML5来做PC应用,那问题就更大了。不像手机端,webkit一统天下,pc上ie各个版本一直霸占着大份额市场。HTML5能否流畅跑起来都成问题。事实上,曾经有公司尝试用网页做互联网客户端,可IE的表现实在太差,版本多,bug多,最后项目终归失败。而豌豆荚这种网页做客户端,也是自己带了个超大的libcef.dll 下去。
. HTML5吹嘘的就是方便开发方便移植,但无论开发还是移植上,都需要兼容各种浏览器,连浏览器都跨不过去,何谈跨平台呢。
..... 另外,HTML5的安全性也是个问题。要阅读和破解太方便了。对于那些看惯晦涩难懂的汇编的搞逆向的人来说,所谓的混淆,简直形同虚设。
..... 事实上,要说明HTML5发展如何失败,只需要举一条例子就够了,那就是facebook押注html5的大失败。facebook肯定是碰到上述的各种问题,才不得不放弃所谓的html5。要知道做出放弃HTML5是个多么大的决定,肯定是到了极端不能忍的地步才会走出这一步。
..... 不过也不是说HTML5一无是处。HTML5一般适合iOS平台、对性能要求不高的游戏,或PC上,能自带浏览器引擎的客户端。当然如果有一天,所有浏览器能完美支持HTML5,并且运行流畅,那我不反对HTML5会一统开发市场,单如果现今阶段,非要把HTML5的优越性无限放大,铁定会惨遭失败。 最近团队把一个本地c++的应用做成webapp,由于没有flex的人,选择了html5。。。
真蛋疼啊,权限、api都不够用,很多本地随手就实现的功能html5得折腾很久。js的调试也很麻烦。好不容易开发出来了,素材,代码都不能加密。
来点动画效果,html5的加载速度慢,帧率跟本地比明显不够。
Canvas是html5看似最牛逼的东西了,可这些不都是flash十年前就玩剩下的吗?
css3还是值得称道的,canvas真不敢恭维。
flash真不知道得罪了谁,被蓄意贬低。其实现在看看web上赚钱的就是游戏都是flash的,有几个奇葩是html5?
或许html5可以说在移动平台上有优势。得,开发一个相同帅+功能+性能的app,原生不知道比html5容易多少倍。
现在大佬都提倡用户体验,html5完全是牺牲体验的典型。所谓的跨平台如果是通过增加开发难度,功能性能缩水来实现也就毫无意义了。宁可在一个平台上做80分,也不要在两个平台上各得50分。
html5的爹是谁? 想弄html5的人先去学学flash, flash就是十年后的html5, 学flash后等于直接把十年后的html5学了, 一下子就比其他人领先十年, 然后回头在看看现在的html5 什么玩意 我以为一项新技术的发展与推广,必定合乎某些公司的利益。
拿HTML5来讲,就是以GOOGLE,FACEBOOK等互联网公司为主,这是他们想看到的。假如所有人都 用了HTML5浏览器,GOOGLE的在线应用,搜索引擎都将大为受益,提供更丰富的浏览器交互和功能,这是以互联网平台发展为主的公司所希望看到的。以此来侵占传统软件公司的市场份额。
ADOBE并非一家平台公司,从技术来讲,FLASH确实会对系统性能有所影响。同时SAFARI,CHROME 的内核WEBKIT,是谁支撑的?对不起,是苹果。并非苹果要针对FLASH,而是苹果要扶持自己的 WEBKIT, SAFARI。GOOGLE, APPLE 对HTML5的推崇并非只是简单的打击FLASH,而是打击传统的软件市场格局。
当然ADOBE并不会坐以待毙,ADOBE有自己的竞争优势,它针对HTML5开发的动画工具早就开始发布了。
现在看来,这是场长期的战争。HTML5符合GOOGLE之类公司的利益,但却在慢慢侵占MICROSOFT公司的过去软件市场。当然MICROSOFT之类的公司也不会坐以待毙。但在这场战争中,GOOGLE,APPLE获得了一定的优势,可以挑战如MICROSOFT的传统市场地位。
HTML5及WEB必将继续给未来的软件、IT 带去更美妙的体验。作为大部分的软件公司,IT企业只能紧跟这次的发展脚步,否则只能是落后!
- 刘铁锋 海豚浏览器 CTO http://www.zhihu.com/people/liu-tie-feng
- 季逸超 Peak-Labs创始人/CEO http://www.zhihu.com/people/ji-yi-chao
- 覃超 Facebook工程师 http://www.zhihu.com/people/qin.chao
- 陈彧堃 友盟技术总监 http://www.zhihu.com/people/chenyukun
- 李建忠 Slideidea 创始人 http://www.zhihu.com/people/jzli
回复内容:
进展很慢。这完全由于所谓开放式标准造成的。HTML5作为开放式标准,成效是明显的。如同现在浏览器继续分化的情况下,但兼容性却呈现出越来越好的优势。现在做网站的同学们应该感到高兴。
但开放式标准带来的问题是,没有能真正提供一个好生态环境及开发体验。
Google在这上面做出了很多贡献,他给你看了很多酷炫的应用,但从没有告诉过你这些应用是怎么做出来的。这就是缺乏统一或是真正好用的开发体验,对于开发者而言显然是不公平的。其它厂商也是。
而封闭的标准:Apple的iOS快速的形成了自己的生态圈 ,当年的Flash也很快的降低了大家在交互式界面的入门门槛形成了多年的繁荣。
而HTML5现在还是各自为战,相对于其它平台无论是Runtime还是IDE,每年一个或几个版本的迭代速度,HTML5在向前前进的路上,的确慢了很多。
很多开发者是不是都有:“我不知道该用HTML5做什么” 的感觉。 由于桌面浏览器多被IE霸占着,所以HTML5可以另外发展的地方是移动终端。现在的移动终端多为IOS或者android系统,就算是低版本的android不支持HTML5,在高版本中也可以解决这个问题。毕竟浏览器是直接绑定在移动系统中的,所以要升级到新版本并不难。
但是,移动端的浏览器支持HTML5是不是划算呢?有哪些好处?
(特性参考了腾讯CDC的HTML新特性介绍 http://cdc.tencent.com/?p=4012 )
首先,HTML5的video标签是一个特色,但是除非是在有wifi的地方,大家也不太可能用pad或者手机上网看视频。所以,这一方面还有待基础设施的建设发展,比如像杭州的wifi热点覆盖等。在基础设施发展到一定阶段,带宽占满,按流量收费改为包月或者计时收费时,大家普遍地用移动设备在线看视频这件事才会产生。
其次,绘图功能。流畅的绘图功能需要图形处理器的支持,手机上现在也越来也多的为了游戏效果而加GPU,所以对HTML5的绘图功能应该是可以很好支持的。
再次,位置服务。LBS(基于位置的服务)是现在的一大热门,也是一种手机功能的革新。HTML5本身就带有Geolocation API,允许用户共享现在所处的位置,并且获得其他的服务。移动性,这一点是桌面浏览器上的HTML5所不具备的优势。
最后,离线存储。这一特点对移动WEB应该的帮助也是显而易见的。移动端WEB应用由于费用的原因比桌面WEB应用更珍惜用户的流量。离线存储可以将js文件、CSS文件甚至是一些数据文件缓存在手机上,当数据发生改变时才将改变的部分与服务器进行同步。这样就避免了用户重复从服务器下载相同的东西而导致流量的浪费。
虽说有以上这些好处,但是真实开发手机端的web应用时,调界面这件事很让人头疼。而且很多时候用户的权限是不打开的,比如要使用Geolocation API时……
但我认为,HTML5的标准化还是值得坚持的,现在像是一个过渡期,过渡期的阵痛在所难免。想想当时浏览器各开各花的时候,那也是很头疼的时期,要用各种hacks来达到一样的效果。程序员的工作也很繁杂。所以,还是希望浏览器厂商能协同一致的遵守某个用于页面展现的标准,然后只在速度和解析效率上做竞争似乎会更好一些。 作为一个不怎么关心 HTML5 的移动开发者,这一年我没有看到特别多的针对 HTML5 的正面消息,倒是听到了一些负面新闻。最大的负面消息莫过于 Facebook 开始转而使用 本地 UI 构造 iOS 版的客户端。这和去年乃至前年热火朝天的讨论大相迳庭。
出处(需西厢):http://www.facebook.com/notes/facebook-engineering/under-the-hood-rebuilding-facebook-for-ios/10151036091753920
事实上,我对 HTML5 并不看好。理由是多方面的。
我不是很赞同前面几位朋友提到的 HTML5 对终端设备依赖性较低的说法。从我个人的经验来看,网络连接事实上是移动设备的耗电大户,即使是作为 HTML5 典范的 Chrome for Android 和 Safari for iOS 也不例外。受限于 HTML 协议和 Javascript 贫弱的二进制处理能力,HTML5 应用往往也不能像本地客户端那样使用压缩的二进制协议节约传输时间和带宽,反而需要消耗处理器时间做复杂的 DOM 解析。执行效率偏低姑且不论,处理纯文本 XML 数据带来的带宽消耗也是另一个问题。
至于应用体验,我承认做得好的 HTML5 页面的华丽程度令人惊叹。但问题在于:你究竟要花多少时间和精力才能做出那样的效果?和本地界面相比,完成一样的效果(比如滑动动画)是否确实更简单和高效,是所有人都得考量的问题。在 iOS 和 Android 平台,简单的动画效果几乎无需开发者费心,只要用标准控件就自然拥有。而 HTML5 则恐怕不是。
至于一致的观感,这个问题是见仁见智的。我不愿意强求自己的产品在所有平台上观感一致,因为这样让自己的产品和平台整体观感不符。但我也知道很多人仍然相信软件的界面应该在所有平台上一个样子。这一点我无法说服任何人。我只能说,站在我的角度上看,所谓 HTML5 界面的一致性优势,在我看来反而是个减分项。
大概就是这样吧。桌面系统的生态区别很大,也许会有不同。但这就不是我擅长的领域了。 HTML5本年进展如何?
这一年是其从概念阶段切换到了实操阶段,其中有数个里程碑事件。
首先我们看到越来越多浏览器在努力支持HTML5,新推PC浏览器和手机浏览器也会将HTML5兼容性测试作为重要的指标,业界开始重视,如金山新推猎豹浏览器:http://bbs.liebao.cn/thread-67984-1-1.html
其次是基于HTML5的应用越来越多,尤其是基于HTML5的操作系统的成熟化,包括PC端和移动端。
- Google近期推出了数款基于CHROME OS的低价ChromeBOOK,主打WEB APP的概念,其主要应用基于HTML5。关于ChromeOS以及“WEB APP”的未来,前段时间还有篇文章:《chrome-is-more-important-to-google-than-android》http://techpinions.com/chrome-is-more-important-to-google-than-android/11575,中译:http://www.huxiu.com/article/5066/1.html ,这篇文章会让我们更加相信HTML5在未来的地位,以及目前它走到了哪里。
- Mozilla将在2013年初推出基于HTML5的手机操作系统FirefoxOS。虽然迟迟没公布正式推出时间,但今日其中文官方微博已公布模拟器下载地址:http://t.cn/zjXsuLH,使用FF的同学可以下载此模拟器感受一下。当然用户体验还是会有差异,我们对其1.0版也不要期待太大。但这个告诉我们一个基于HTML5的手机操作系统的概念。
另外就是HTML5现在发展的不成熟的瓶颈或者障碍,个人认为除了设备性能以及标准外,还有很重要的几点。
基于HTML5的应用的好处@刘铁锋已经提得比较全了,但是HTML5应用最大的一个区别是基于WEB的,计算和数据更多是放在云端,对终端设备的依赖性会比较低,包括计算性能和存储性能。既然是基于WEB的,所以就要一分为二来看。
- PC端,设备性能已经不是瓶颈,而网络接入能力随着宽带的高速化光纤化,也不是瓶颈。所以PC端现在的瓶颈是整个行业对HTML5的支持。除了浏览器本身的支持外,网站提供者将网站过渡到HTML5也需要时间。因为浏览器是向下兼容的,所以这个时间可能还会很长。网站和浏览器以及用户全面支持HTML5的时候,就是ADOBE FLASH被淘汰的时候;
- 移动端,设备硬件性能现在也完全反馈的摩尔定律,但是个人认为电量和网络是个很大的问题。
说回第二个问题网络,既然WEB应用将执行放在云端,那么其计算和数据对网络的依赖性可想而知。国内目前的移动网络发展状况堪忧,3G目前走向成熟但是覆盖范围有限。尤其是移动的3G技术本身的局限性导致其不能达到3G的真正的效果,但是仍然覆盖了较多用户;4G目前也存在很多悬念。当然WIFI热点在很大程度解决了网速的问题。不过整体情况是移动网络与PC网络差距巨大;国内网络与国外环境又差距巨大。
上述两个问题是HTML5应用发展的瓶颈,也是手机发展,甚至移动互联网发展的瓶颈,是急需解决的两个问题。
应邀做答。
个人观点,基于如下几个原因,基于HTML 5的开发会越来越多
- 入门的门槛(影响了开发者的基数和成本)
- 开发的成本(雇佣多个平台开发人员,还是一个平台开发人员)
- PC上的发展趋势
为什么现在HTML 5 的开发不成熟?
- 浏览器内核能力不够强(渲染速度、界面响应速度、通过GPU加速的能力)不够,对于基本HTML 5的标准支持并不是最大问题。PC的浏览器已经接近完全,手机上海豚浏览器的内核已经可以达到480+, 通过Facebook的Ringmark测试的Ring 1 (非广告,只是为了说明技术上的可行性).
- 浏览器访问移动设备的能力(标准的发展和用户的需求有差距)
- 浏览器的编程模型的限制(单进程的模型,依赖于DOM数据处理的模型)
但是目前手机的硬件能力已经在提升,双核1G,Android 4.0的MTK山寨手机已经只要500块。双核1.5G只要900块。性能不会是最大瓶颈,那么PC上已经跑起来的典型应用,在手机上都会起来。如果对比PC上的发展局面,其实已经展示了手机HTML 5发展的未来。
HTML 5的开发是否有进展?
不在于HTML 5的标准,而在于HTML 5的库的发展,有了更好的库就能够更多地减少开发者的工作以及更大范围的普及。如果从这个角度来说,HTML 5的库在蓬勃发展。当足够的高性能库出现的时候,HTML 5应用开发的普及就会顺理成章铺开。 只说Mobile的事。基本上,H5问题严重
最大问题是木有大腿可以抱。iOS有苹果,Android有google,win phone有微软,要钱有钱要人有人。有钱有人的都不一定能成,H5靠啥?谁来做库?谁来做开发工具?谁来写详细到爆的开发文档?谁来建生态系统?谁来建商业模式?谁来收拾刷榜的?谁来解决百度这个bug?
H5号称成本低,招人容易,跨平台容易。问题是,牛叉的用户体验才是前提啊,要是这个做不好,那还说个屁。再便宜的垃圾也是垃圾啊!你要赢,那你的体验必须要比native更好啊,按照这个标准招人来做,你去试试成本是多大,还能不能跨平台。
H5的标准也是扯淡。弄啥标准啊,有毛用。所谓的标准到最后都是几个大厂扯皮的结果啊。一扯就是数年,你慢慢等吧,什么?你说用户感受?啥是用户啊?IT世界有哪个消费品是先制定标准,然后牛逼的?越标准的东西越平庸!干脆别弄标准了,就按用户感受为最高指示来弄吧,问题是那和native app又有啥区别啊?为啥要再弄一个?就为了照顾懒得学其他语言的懒货以及学不会的蠢货么?直说呗,那还谈个屁的用户感受
至于语言、性能层面上的东西,哥都懒得说。Java就是你的榜样,基因不行,再多优化都是废材
至于各个浏览器厂的言论,可以直接无视 说实话,HTML5这东西,我严重怀疑是次培训机构的大炒作(下面有同学指出是浏览器产商的大炒作,有道理,总之正肯定有幕后在推波助澜,想捞点好处)。因为周围,无聊国内还是国外,都是叫好不叫座。具体来说,其一,功能和性能有限。就拿HTML5中最大的亮点canvas来说,想用这玩意取代flash,基本是不可能的。canvas才提供多少个api,那几个绘图函数实在太简陋,和flash极其强大的各种特效相比简直大巫见小巫,更别提flash的动画能力了。其二,用js来做动画和特效,效率太低。flash player里面对各种浮点数、矢量绘图的优化,简直到了超越普通硬件加速的地步,下面摘自一位精研flash player的牛人的话:
Adobe的FlashPlayer在诞生时,那个时候还没有通用的2D矢量显示标准(如OpenVG),其针对软件渲染的2D矢量图形显示可谓是亮点,在经过十几年的发展和优化,Adobe的2D软件矢量渲染引擎可谓是已经发展到尽善尽美了,这也可以解释为什么自FlashPlayer 4到FlashPlayer 8其渲染引擎一直没有太大的变化,也可以解释为什么Adobe FlashPlayer软件渲染的效能甚至会好于使用低端硬件加速的效能了;但,成也萧何败也萧何,过于完美的标准和算法阻碍了使用标准硬件加速的可能(针对特殊GPU的硬件加速,因为其灵活性不在我们的考虑中) (简要评说Adobe的FlashPlayer的渲染算法)
也就是说,你拿低端硬件加速,也不一定拼的过flash player的速度,那js呢?js比c++还慢了数倍,这样的速度去写动画,绝对被用户骂死。
其二,现在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来做移动应用,几乎是不可能的。其一,api有限,比如想和文件系统、其他各种设备交互,现有的API用其来简直捉荆见肘;
其二,权限不够。
其三,用原生语言写出的app尚且如此耗电,有时候,那些网页,肯定都卡爆了,即是说,效率不够。
其四,做出的应用几乎是全裸摆在竞争对手前面,难以加密。
其五,开发工具不够,想写点复杂的东西,累的半死。
你觉得这种情况得多少年才能改善?前面那些说HTML5如何如何的,我想说的是,还是看清现实吧.
-----
补充:
不管做哪种应用,HTML5都有各种不可饶恕的缺陷。
.....首先如果拿HTML5来做手机应用。如果是普通工具类型的APP,那界面部分确实可以省一些工作量。用网页来做界面确实比native方便很多,但一般来说界面只是工作量的一部分,大部分后台逻辑还是得在native来做。所以HTML5的优势不是特别大。
..... 如果用HTML5来做手机游戏, 那问题就大多了。首先就是效率问题,用JS这种东西,再怎么优化也达不到native的程度,这点你也许会说chrome的效率已经够高了,但并不是所有手机都装了chrome,这其实就牵扯到第二个问题,兼容性问题。要解决效率问题就得解决兼容性问题。但目前安卓上浏览器种类太多了,每种对html5的支持不一样,对JS的运行效率也不一样。而大部分游戏对效率要求肯定是越高越好。非要牺牲native的性能优势,而花那么大精力去整html5干嘛呢?其实无非就是因为html5开发上稍微方便点,移植简单点。但对于手机游戏,本身就有cocos2等方便移植的引擎,开发、运行、移植效率也高,何乐而不为呢。
..... 如果用HTML5来做PC应用,那问题就更大了。不像手机端,webkit一统天下,pc上ie各个版本一直霸占着大份额市场。HTML5能否流畅跑起来都成问题。事实上,曾经有公司尝试用网页做互联网客户端,可IE的表现实在太差,版本多,bug多,最后项目终归失败。而豌豆荚这种网页做客户端,也是自己带了个超大的libcef.dll 下去。
. HTML5吹嘘的就是方便开发方便移植,但无论开发还是移植上,都需要兼容各种浏览器,连浏览器都跨不过去,何谈跨平台呢。
..... 另外,HTML5的安全性也是个问题。要阅读和破解太方便了。对于那些看惯晦涩难懂的汇编的搞逆向的人来说,所谓的混淆,简直形同虚设。
..... 事实上,要说明HTML5发展如何失败,只需要举一条例子就够了,那就是facebook押注html5的大失败。facebook肯定是碰到上述的各种问题,才不得不放弃所谓的html5。要知道做出放弃HTML5是个多么大的决定,肯定是到了极端不能忍的地步才会走出这一步。
..... 不过也不是说HTML5一无是处。HTML5一般适合iOS平台、对性能要求不高的游戏,或PC上,能自带浏览器引擎的客户端。当然如果有一天,所有浏览器能完美支持HTML5,并且运行流畅,那我不反对HTML5会一统开发市场,单如果现今阶段,非要把HTML5的优越性无限放大,铁定会惨遭失败。 最近团队把一个本地c++的应用做成webapp,由于没有flex的人,选择了html5。。。
真蛋疼啊,权限、api都不够用,很多本地随手就实现的功能html5得折腾很久。js的调试也很麻烦。好不容易开发出来了,素材,代码都不能加密。
来点动画效果,html5的加载速度慢,帧率跟本地比明显不够。
Canvas是html5看似最牛逼的东西了,可这些不都是flash十年前就玩剩下的吗?
css3还是值得称道的,canvas真不敢恭维。
flash真不知道得罪了谁,被蓄意贬低。其实现在看看web上赚钱的就是游戏都是flash的,有几个奇葩是html5?
或许html5可以说在移动平台上有优势。得,开发一个相同帅+功能+性能的app,原生不知道比html5容易多少倍。
现在大佬都提倡用户体验,html5完全是牺牲体验的典型。所谓的跨平台如果是通过增加开发难度,功能性能缩水来实现也就毫无意义了。宁可在一个平台上做80分,也不要在两个平台上各得50分。
html5的爹是谁? 想弄html5的人先去学学flash, flash就是十年后的html5, 学flash后等于直接把十年后的html5学了, 一下子就比其他人领先十年, 然后回头在看看现在的html5 什么玩意 我以为一项新技术的发展与推广,必定合乎某些公司的利益。
拿HTML5来讲,就是以GOOGLE,FACEBOOK等互联网公司为主,这是他们想看到的。假如所有人都 用了HTML5浏览器,GOOGLE的在线应用,搜索引擎都将大为受益,提供更丰富的浏览器交互和功能,这是以互联网平台发展为主的公司所希望看到的。以此来侵占传统软件公司的市场份额。
ADOBE并非一家平台公司,从技术来讲,FLASH确实会对系统性能有所影响。同时SAFARI,CHROME 的内核WEBKIT,是谁支撑的?对不起,是苹果。并非苹果要针对FLASH,而是苹果要扶持自己的 WEBKIT, SAFARI。GOOGLE, APPLE 对HTML5的推崇并非只是简单的打击FLASH,而是打击传统的软件市场格局。
当然ADOBE并不会坐以待毙,ADOBE有自己的竞争优势,它针对HTML5开发的动画工具早就开始发布了。
现在看来,这是场长期的战争。HTML5符合GOOGLE之类公司的利益,但却在慢慢侵占MICROSOFT公司的过去软件市场。当然MICROSOFT之类的公司也不会坐以待毙。但在这场战争中,GOOGLE,APPLE获得了一定的优势,可以挑战如MICROSOFT的传统市场地位。
HTML5及WEB必将继续给未来的软件、IT 带去更美妙的体验。作为大部分的软件公司,IT企业只能紧跟这次的发展脚步,否则只能是落后!