从原:http://www.36kr.com/p/216655.htmlcss
咱们第一次谈论HTML5要改变世界大概是因为乔布斯,他坚持在iOS上不兼容Flash,在Adobe统治多媒体开发的那个年代。这需要付出极大的勇气。这么多年过去了,尽管所有人都在谈论HTML5,但是大部分人甚至都忘了它仍是一个仍在无缺中的体系。html
2007年W3C(万维网联盟)立项HTML5,直至2014年10月底,这个长达八年的规范最终正式定稿。接下来,HTML5将真正開始颠覆原生(Native) App世界。尽管这样的危言耸听已经让人有点厌烦。但是假设回想HTML这些年走过的路,你就不会再怀疑它的能量。html5
自W3C于1999年公布HTML4后。Web世界高速发展,一片繁荣。css3
人们一度以为HTML标准不需要升级了。一些致力于发展Web App的公司另行成立了WHATWG组织。直到2007年,W3C从WHATWG接手相关工做。又一次開始发展HTML5。web
HTML5的发展史,实用户的需求在推进,有技术开发人员的需求在推进,更有巨大的商业利益在推进。在互联网的早期。对用户而言,能打开浏览器接入到互联网世界就是一个奇妙的事情,但互联网发展到2005年先后,開始出现下一个变化,就是宽带互联。编程
随着宽带的普及和电脑性能的加强,人们再也不知足于单纯的经过互联网看新闻、收发邮件。消耗更高带宽的娱乐产品開始出现,就是流视频和网页游戏。事实上视频和游戏是古老的需求,在互联网不普及的时候,需求的知足方式是离线传输的VCD和游戏光盘;后来互联网逐渐普及,人们更改了使用方式,经过下载软件+本地媒体播放器来看视频,下载体积较大的端游玩游戏。canvas
但是对消费者体验更好的新方式仍是出现并颠覆了曾经的一切。那就是流媒体和网页游戏。Youtube等公司把握住潮流飞速崛起。各类页游公司也如雨后春笋。浏览器
HTML标准没有把握住产业的变化及时演进,浏览器产品也未升级,这块新需求被浏览器插件知足了,那就是Flash。这个部署在亿万浏览器里的商业插件俨然成为事实标准。2005年Adobe巨资收购Macromedia,把Flash收归旗下,紧接着大幅推广FLV流媒体和action script语言。很是明显这桩收购可以列为IT并购的经典案例,FLV流媒体和Flash游戏风靡互联网,Adobe在新的产业升级中攫取了大量的利润。安全
除了Flash这个商业产品成为了事实标准。W3C还面临一个尴尬。就是还有一个私有扩展协议的制造者—IE。微信
IE当时在桌面浏览器占有垄断地位。并且扩展了大量的IE Only语法,开发人员全然不知道这些语言是谁定义的。整个web世界,就被两家公司微软+Adobe绑架了。
很是多IT巨头都坐不住了。尤为是苹果和Google。PC操做系统的世界难有突破。Web浏览器被苹果寄予厚望;新贵Google尽管大量赞助Mozilla,但并未对IE的地位产生实质影响,收购了YouTube后发现命脉在Adobe手里,也是很是难过,而且Google每一年给IE的搜索框和Adoble FLV缴纳的费用真不是小数目。
既然你们都是W3C的主席单位。好吧,咱们又一次開始作HTML5吧。是的,HTML5事实上就是这么诞生的。
自HTML5诞生以来,一共经历了两个阶段。各自是Web加强和移动互联网。咱们先从Web 加强提及。Web体验的丰富加强主要表现在:
固然HTML5还为搜索引擎的语义分析作了优化,比方新增Header和Section等标签。也在无障碍等领域作了很多工做。这些再也不多述。
HTML5在流媒体和游戏方面的努力,成功的遏制了Flash的发展。而后就该遏制IE私有语法了。
在HTML5标准的升级过程当中。苹果和Google同一时候也看到了浏览器市场又一次洗牌的机会。他们一方面參与HTML5的规范,一边在浏览器产品上发力。
Apple首先開始大力发展Safari。创建WebKit开源项目,迁移Safari到Windows平台;Google起初是赞助Mozilla开发Firefox。后来本身开发了v8引擎。合并WebKit。于2008年正式推出Chrome。“IE的私有规范+Flash不是标准,咱们才是标准”这种口号在新一代浏览器大战中打响,IE瞬间成为千夫所指的垄断表明,甚至成了阻碍Web发展的罪人(当时IE6已数年未更新。并且丝绝不惧Firefox的发展)。
、
恰恰微软此时也出了晕招,推出了一系列即不完整支持规范又互相不兼容的IE七、八、九、10,完全失去了开发人员的支持。
Adobe的Flash被遏制,与Web霸主的位子擦肩而过;IE的私有标准被遏制,并且形成IE市场份额不停下滑。直到IE最新的移动版本号反过来開始支持WebKit语法。真是使人唏嘘。不知道HTML6是否是该打倒WebKit垄断了。
随着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的使用每每是“原生project师+HTML5project师”一块儿协做完毕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应用的页面切换白屏、下拉刷新/側滑菜单不流畅等众多问题。看着原生project师轻松实现摇一摇、二维码、语音输入、分享到朋友圈等功能。更是让HTML5project师感受本身站错了队。
即便Facebook不喜欢被控制,也不能拿被用户抛弃来冒险。
而且Facebook并无掌握关键点—手机浏览器内核。假设浏览器不跟上,其它都是白搭。
而浏览器在手机上的表现是什么呢?先看Google。Chrome性能虽高,但Android上的浏览器却并非Chrome,而是WebKit改出来的一个蹩脚的Android浏览器;再看苹果。iOS上不一样意其它浏览器引擎上架App Store,而且其它使用Safari引擎的应用也没法调用苹果本身的JavaScript加速引擎Nitro。结果是苹果和Google不但不在浏览器上积极实现HTML5关于移动App所需的规范,反而对HTML5作出种种限制。
不管是当时硬件能力不足,仍是手机OS厂商的有益限制,总之结果很是明显:在移动互联网的初期,必定是原生应用生态系统的天下,iOS和Android首先把本身变成老大后,其它小弟才干寻觅到成长的机会。
Facebook也好,PhoneGap也好,想在移动互联网初期就分一杯羹是分不到的。但坚持下来。机会每每会出现。
HTML5在这个时间定稿,不晚不早,硬件性能更强、手机OS迭代速度降低。随着HTML5标准定稿,一切纷争将告一段落,现在,属于HTML5的时代到来了。这个曾让人满怀但愿,又被Facebook等众多满怀但愿的开发人员放弃的技术,现在会告诉你们。之前让各位失望的缘由,现在已经不存在了!这听起来有些惊人,你们不由要问:是真的吗?让咱们细细分析。
业内俗称HTML5有“性功能”障碍。即HTML5性能不如原生、开发工具不如原生、能力调用不如原生。
这几个问题致使开发人员没法使用HTML5作出与原生同样的App。然而。不管是硬件升级仍是OS厂商策略变化,以及相关软件技术的成熟,已攻克了HTML5的“性工能”障碍。
2012年iPhone 5公布后,HTML5在iOS上的表现已使人惬意,Safari独家的JavaScript加速引擎Nitro再也不那么重要。只是在iOS 8公布后,苹果仍是很是识趣地取消了三方程序调用Nitro的限制,现在随意浏览器或应用调用iOS的UIWebview都可以利用Nitro加速。两大手机操做系统霸主和浏览器巨头的态度发生了变化,使得HTML5在手机上的发展再也不受限,而且这个变化不可逆仅仅能继续向前。这样的变化势必会产生深远的影响。
2014年的iWeb大会上,众多厂商的产品提供了面向开发人员免费或开源的HTML5性工能障碍的解决方式。
DCloud公司在iWeb大会上公布了系统的HTML5“性工能缺失”的解决方式,包含解决HTML5性能问题的手机端引擎、超快的HTML5开发IDE产品HBuilder、还有把40万原生API封装成JavaScript对象,以解决HTML5能力不足问题的Native.js技术。基于该方案开发的HTML5应用全然可以达到原生App的功能和体验。此外,DCloud还公布了一个MUI框架。咱们都知道浏览器的默认控件样式和原生控件样式区别很是大,一个高性能的、样式体验与原生控件同样的UI框架是很是重要的,以前jQuery Mobile等产品的因性能不足,因此难当此任。
英特尔公司公布了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的优点是什么?对开发人员来讲:
跨平台技术在早期大多因为性能问题夭折,但中后期硬件能力加强后又会占领主流,因为跨平台确实是刚需。
而原生App的流量入口仅仅有应用市场。聪明的HTML5开发人员固然会玩转各类流量入口从而取得更强的优点。
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的强大会引起很是多安全问题。并且解决思路与原生不同,业内有可能会出现新的安全厂商领导者。
写到结尾,感受话题有点大了。
事实上将来怎样发展是没人能准确预測的,变量许多。但我想让用户和开发人员都更方便的趋势是不会错的。欢迎你们一块儿讨论HTML5的问题,在争议中提炼真知。( 36氪 近期将会优先接受一些HTML5的开发人员来投稿參与讨论,关注但不限于HTML游戏开发,浏览器内核,轻应用分发,邮箱tips#36kr.com)
本文做者王安,DCloud公司CEO。W3C会员、HTML5中国产业联盟发起人。HTML5开发工具HBuilder设计师,十几年web和手机开发经验。我的邮箱:wangan@dcloud.io 。