2007年W3C(万维网联盟)立项HTML5,直至2014年10月底,这个长达八年的规范终于正式定稿。接下来,HTML5将真正开始颠覆原生 (Native) App 世界。虽然这种危言耸听已经让人有点厌烦。可是若是回顾HTML这些年走过的路,你就不会再怀疑它的能量。
Adobe的Flash被遏制,与Web霸主的位子擦肩而过;IE的私有标准被遏制,而且形成IE市场份额不停下滑,直到IE最新的移动版本反过来开始支持WebKit语法,真是使人唏嘘。不知道HTML6是否是该打倒WebKit垄断。
3、HTML5 第二阶段: 移动互联网
随着Chrome和Safari的高歌猛进,以及IE+Flash的衰落,HTML5告一段落,进入了下一个时代——移动互联网。HTML5的跨平台优 势在移动互联网时代被进一步凸显。HTML5是惟一一个通吃PC、Mac、iPhone、iPad、Android、Windows Phone等主流平台的跨平台语言。Java 和Flash都曾梦想这个位置,但梦断于iOS。此时人们纷纷开始研究基于HTML5开发跨平台手机应用。不少人当时认为,原生应用只是过渡,就像当年从 C/S 结构转变为B/S结构同样。并且学习Objective-C和Java很费劲,我既然会网页开发,为什么不试试HTML5。
W3C此时成立了Device API 工做组,为HTML5扩展了Camera、GPS等手机特有的API,然而麻烦的是,移动互联网初期的迭代太快了,手机OS在不停的扩展硬件API,陀螺 仪、距离感应器、气压计。每一年手机OS都有大版本更新。而W3C做为一个数百家会员单位共同决策的组织,从标准草案的提出到达成一致是很是复杂的过程,跟 不上移动互联网初期的快速迭代。
PhoneGap的出现,给开发者打开了一扇窗。不少人期待 PhoneGap不停扩展API,来补充浏览器的不足。Adobe看到PhoneGap仿佛看到了重振江湖地位的但愿,但在Adobe收购 PhoneGap后,又发现这个东西问题不少,并且开源使得Adobe没法像Flash那样获取商业利益,因而就把PhoneGap捐给了Apache, 更名为Cordova。
由于各类缘由,Cordova 的定位最终没有成为浏览器的强化,而走向了混合式开发。基于当时的背景,他们认为原生是不可替代的,“原生+HTML5” 的混合模式更有意义。因此如今Cordova的使用每每是“原生工程师+HTML5 工程师”一块儿协做完成App。
这时Facebook加入了W3C,牵头成立了Mobile Web工做组。Facebook是混Web圈的,而且在手机OS上并没有本身的领地,他不喜欢被苹果和Google掌控的原生应用生态系统。Mobile Web这个工做组的重要目标就是让HTML5开发的网页应用达到原生应用的体验。然而,事与愿违,它不努力也就算了,结果是努力了却失败了。2012 年,Facebook 放弃HTML5的新闻充斥了全世界的IT媒体,HTML5 瞬间被打入冷宫。
Facebook为什么放弃HTML5?核心是当时基于HTML5真的作不出好的移动App。对比Twritter等竞争对手的原生 App,Facebook的 HTML5版本实在没法让用户满意。好比Push功能,到如今HTML5的推送和原生的推送体验差距依然巨大,更不用说HTML5应用的页面切换白屏、下 拉刷新 / 侧滑菜单不流畅等众多问题。看着原生工程师轻松实现摇一摇、二维码、语音输入、分享到朋友圈等功能,更是让HTML5工程师感受本身站错了队。
即便Facebook不喜欢被控制,也不能拿被用户抛弃来冒险。并且Facebook并无掌握关键点—手机浏览器内核。若是浏览器不跟上,其余都是白搭。
而浏览器在手机上的表现是什么呢?先看Google,Chrome性能虽高,但Android上的浏览器却并不是Chrome,而是WebKit改出来的 一个蹩脚的Android浏览器;再看苹果,iOS 上不容许其余浏览器引擎上架App Store,并且其余使用Safari引擎的应用也没法调用苹果本身的JavaScript加速引擎Nitro。结果是苹果和Google不但不在浏览器 上积极实现HTML5关于移动App所需的规范,反而对HTML5作出种种限制。
无论是当时硬件能力不足,仍是手机OS厂商的故意限制,总之结果很明显:在移动互联网的初期,必定是原生应用生态系统的天下,iOS 和Android首先把本身变成老大后,其余小弟才能寻觅到成长的机会。
Facebook也好,PhoneGap也好,想在移动互联网初期就分一杯羹是分不到的,但坚持下来,机会每每会出现。
4、HTML5 这回真的来了
HTML5在这个时间定稿,不晚不早,硬件性能更强、手机OS迭代速度降低。随着HTML5标准定稿,一切纷争将告一段落,如今,属于HTML5的时代 到来了。这个曾让人满怀但愿,又被Facebook等众多满怀但愿的开发者放弃的技术,如今会告诉你们,曾经让各位失望的缘由,如今已经不存在了!这听起 来有些惊人,你们不由要问:是真的吗?让咱们细细分析。
业内俗称HTML5有“性功能”障碍。即HTML5性能不如原生、开发工具不如原生、能力调用不如原生。
这几个问题致使开发者没法使用HTML5作出与原生同样的App。然而,无论是硬件升级仍是OS 厂商策略变化,以及相关软件技术的成熟,已解决了HTML5的“性工能”障碍。
移动端硬件军备竞赛2011年,iPhone 4s的CPU是A5,如今iPhone 6是A8,按苹果的历次发布会的说法,速度共提高了7.5 倍。这3年间7.5 倍的速度提高,抹平了太多HTML5的性能问题。
苹果、Google的策略变化,Google在2013年末发布的Android 4.4,内置的Webview再也不是蹩脚的Android WebKit浏览器,而是 Chromium。2012年iPhone 5发布后,HTML5在iOS 上的表现已使人满意,Safari 独家的JavaScript 加速引擎Nitro再也不那么重要,不过在iOS 8发布后,苹果仍是很识趣地取消了三方程序调用Nitro的限制,如今任意浏览器或应用调用iOS的UIWebview均可以利用Nitro加速。两大手 机操做系统霸主和浏览器巨头的态度发生了变化,使得HTML5在手机上的发展再也不受限,并且这个变化不可逆只能继续向前,这种变化势必会产生深远的影响。
软件技术的成熟PhoneGap的发展虽然放缓,但其余产品技术却成熟了。2014年的iWeb大会上,众多厂商的产品提供了面向开发者免费或开源的HTML5性工能障碍的解决方案。
咱们都知道浏览器的默认控件样式和原生控件样式差异很大,一个高性能的、样式体验与原生控件同样的UI框架是很是重要的,以前jQuery Mobile等产品的因性能不足,因此难当此任。咱们公司在iWeb大会上发布了系统的HTML5 “性工能缺失”的解决方案,包括解决HTML5性能问题的手机端引擎、超快的HTML5 开发IDE产品HBuilder、还有把40 万原生API 封装成JavaScript对象,以解决 HTML5 能力不足问题的Native.js 技术。
英特尔公司发布了Crosswalk引擎,可让Android 4.0-4.3的手机上的应用打包Chromium引擎而不是Android WebKit。虽然说将来 Android 4.4 会占据更多市场份额,但目前主流的Android手机的系统版本毕竟仍是 4.一、4.2。
在专业方向上不少公司也作出了不错的成绩。触控的Cocos2d-html五、Egret runtime和Ludei CocoonJS强化了Canvas的表现,让 HTML5游戏体验更好;UC、猎豹等手机浏览器也强化了音视频播放的表现。
无论是硬件升级、软件成熟,仍是操做系统厂商策略变化,都在强力推进HTML5的爆发。
不过要注意,我说的HTML5爆发,不是指手机浏览器爆发。有人说HTML5很差,由于用户讨厌打开浏览器输入URL 的过程。我想说这种想法是对HTML5的片面理解。HTML5!=传统浏览器,虽然编程语言仍是HTML、Javascript、CSS,但发行方式毫不 是传统网站那么简单。HTML5 应用的入口,反而不多是启动浏览器输入URL,它能够是存在于手机桌面的图标、也能够来自超级App(如微信朋友圈)、以及
搜索引擎、应用市场、广告联 盟。处处都是它的入口。它的入口,比原生App更多。
5、原生App的颠覆
HTML5的“性工能”障碍获得解决,能够接近原生App的效果,因此它就能够替代原生App吗?不少人认为,即便HTML5会发展的比如今好,也将是与原生App各占一部分市场的格局,要求不高的长尾应用会使用HTML5,而主流应用还是原生App的天下。
但我认为这样的想法很危险,就像HP的高层告诉沃兹:谁会在家里摆一台电脑呢?将来HTML5确定会颠覆原生App。“性工能” 障碍的消除,只是HTML5的劣势被削弱,但劣势被消除后,它的优点就会大放异彩,HTML5的优点是什么?对开发者来讲:
跨平台 在多屏年代,开发者的痛苦指数很是高,人人都期盼HTML5 能扮演救星。多套代码、不一样技术工种、业务逻辑同步,这是折磨人的过程。有点相似我的电脑早期世界,那个时候的每家电脑都有本身的操做系统和编程语言,开 发者疲于作不一样版本,其实 DOS 的盛行也很大程度是由于开发者实在没精力给其余电脑写程序。跨平台技术在早期大多由于性能问题夭折,但中后期硬件能力加强后又会占据主流,由于跨平台确实 是刚需。
快速迭代 移动互联网是一个快鱼吃慢鱼的时代,谁对用户的需求知足的更快,谁的试错成本更低,谁就拥有巨大的优点。互联网产品大多免费、且有网络效应,后入者抢夺用 户的难度很是大。使用原生开发,从招聘、开发、上线各个环节的效率都慢一倍以上,并且参与的人越多,沟通效率每每拖慢不止一倍。
减低成本 创业者融资并不容易,如何花钱更高效很是重要。若是你使用原生开发的App和竞争对手使用HTML5开发的App没什么区别,但你的开发成本高出一倍,我相信没有投资人会喜欢给你投钱。
导流入口多 HTML5应用导流很是容易,超级App(如微信朋友圈)、
搜索引擎、应用市场、浏览器,处处都是HTML5的流量入口。而原生App的流量入口只有应用市场。聪明的HTML5开发者固然会玩转各类流量入口从而取得更强的优点。
分发效率高 前段时间微信朋友圈风靡一时《神经猫》,这个游戏若是放到Appstore,绝对没有那么多流量,超级App带来的流量,远大于原生应用市场。假如微信允 许游戏在桌面建立快捷方式、假如游戏后续升级解决持续娱乐问题,将来不可想象。除了入口多、流量大,导流效率高也不可忽视,谁都知道:页游和端游打一样的 广告,广告变用户的转化率,页游远远高于端游。
HTML5 对用户的好处是:和流量入口多、分发效率高相对应的。大幅下降使用门槛。用户眼睛看到一个兴趣点,点击后,就应该当即开始知足用户需求。好比流媒体能够立 即看,页游能够当即玩。而目前的原生应用市场,用户须要这样操做:选一个应用、等待下载、确认权限、等待安装,而后点击打开。这样糟糕的体验早晚要被颠 覆。无论是App、游戏仍是音视频,将来都将即点即用。谁先知足用户这个需求,谁就制胜。
这就是所谓“天下武功,惟快不败”。分析至此,咱们能够明显的看出,无论是站在最终用户角度、仍是站在开发者角度,HTML5必将取代原生应用当前的位置。并由此引起一系列颠覆。
6、还有什么会被改变?
HTML5的爆发,原生App生态系统的颠覆,是一场产业革命,不少角色都会受到影响,咱们来预测一番。
标准的HTML5引擎并不能解决HTML5的全部问题,拥有大流量入口的互联网巨头,莫不在思考内嵌更优秀的加强引擎。腾讯推出了X5浏览器引擎,就是看中这个机会。
目前各路浏览器厂商、应用市场厂商、甚至rom厂商,都在努力整合更优质的浏览器引擎。假使微信内嵌的webview能够运行更优秀的canvas游 戏、假使360手机助手能够发行即点即用的HTML5应用而且能力体验与原生一致、假使小米rom内置更强大的 webview使得全部HTML5应用在小米手机上运行的更流畅。全部巨头都会闻风而动,没错,这场战役会是移动互联网世界的二次世界大战。
应用分发市场将面临洗牌,因为超级App的巨大流量能轻易成为HTML5应用的入口,而且会造成大者更大的效应,传统的应用商店、甚至线下预装,这些流 量不足和效率偏低的发行模式将被挤出市场主流。自己也是超级App的大流量应用商店,若是转型得当,也将以发行HTML5应用为主。
原生的广告和统计SDK提供商会面临尬尴,Google、百度等基于网页的广告和统计服务会取得更大的优点。开发者再也不须要打包 SDK,引入一个Script便可。
开源技术将在移动互联网领域更加流行。HTML的开放性造就了大量的开源产品,也反向促进了HTML的繁荣。在Github上有大量的JS 框架,而原生的开源代码数量相比甚少。而将来移动互联网世界将由于开源而发展的更迅速,这里也一样存在类Github厂商的机遇。
早期HTML只须要记事本写几个Tag,中期的HTML、JS、CSS比较复杂,须要更高级的文本编辑器,但HTML5到来后,它的代码量、复杂度、开 发模型将与原生开发看齐,须要相似XCode、Eclipse等专业的IDE工具来解决开发、调试的问题。一些以会使用记事本写代码为荣的开发者,将面临 思路转换甚至被更高效的开发者淘汰。
HTML5的强大会引起不少安全问题,而且解决思路与原生不同,业内有可能会出现新的安全厂商领导者。
7、结语
写到结尾,感受话题有点大了。其实将来如何发展是没人能准确预测的,变量很是多。但我想让用户和开发者都更方便的趋势是不会错的。欢迎你们一块儿讨论HTML5的问题,在争议中提炼真知。