从原:http://www.36kr.com/p/216655.html

我们第一次谈论HTML5要改变世界大概是由于乔布斯,他坚持在iOS上不兼容Flash,在Adobe统治多媒体开发的那个年代。这须要付出极大的勇气。这么多年过去了,尽管全部人都在谈论HTML5,可是大部分人甚至都忘了它还是一个仍在完好中的体系。

2007年W3C(万维网联盟)立项HTML5,直至2014年10月底,这个长达八年的规范最终正式定稿。接下来,HTML5将真正開始颠覆原生(Native) App世界。尽管这样的危言耸听已经让人有点厌烦。可是假设回想HTML这些年走过的路,你就不会再怀疑它的能量。

一、HTML5的诞生

自W3C于1999年公布HTML4后。Web世界高速发展,一片繁荣。

人们一度觉得HTML标准不须要升级了。一些致力于发展Web App的公司另行成立了WHATWG组织。直到2007年,W3C从WHATWG接手相关工作。又一次開始发展HTML5。

HTML5的发展史,实用户的需求在推动,有技术开发人员的需求在推动,更有巨大的商业利益在推动。在互联网的早期。对用户而言,能打开浏览器接入到互联网世界就是一个奇妙的事情,但互联网发展到2005年前后,開始出现下一个变化,就是宽带互联。

随着宽带的普及和电脑性能的增强,人们不再满足于单纯的通过互联网看新闻、收发邮件。消耗更高带宽的娱乐产品開始出现,就是流视频和网页游戏。事实上视频和游戏是古老的需求,在互联网不普及的时候,需求的满足方式是离线传输的VCD和游戏光盘;后来互联网逐渐普及,人们更改了使用方式,通过下载软件+本地媒体播放器来看视频,下载体积较大的端游玩游戏。

可是对消费者体验更好的新方式还是出现并颠覆了曾经的一切。那就是流媒体和网页游戏。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 增强与破垄断

自HTML5诞生以来,一共经历了两个阶段。各自是Web增强和移动互联网。我们先从Web 增强说起。Web体验的丰富增强主要表如今:

  1. WebApp HTML5新增了离线存储、更丰富的表单(比方Input type=date)、js线程、socket、标准扩展embed、css3…
  2. 流媒体 HTML5新增了audio、video
  3. 游戏 HTML5新增了canvas、webgl

当然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的发展)。

偏偏微软此时也出了晕招,推出了一系列即不完整支持规范又互相不兼容的IE7、8、9、10,彻底失去了开发人员的支持。

Adobe的Flash被遏制,与Web霸主的位子擦肩而过;IE的私有标准被遏制,而且造成IE市场份额不停下滑。直到IE最新的移动版本号反过来開始支持WebKit语法。真是令人唏嘘。不知道HTML6是不是该打倒WebKit垄断了。

三、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的使用往往是“原生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这回真的来了

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性工能障碍的解决方式。

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.1、4.2。

在专业方向上非常多公司也做出了不错的成绩。触控的Cocos2d-html5、Egret runtime和Ludei CocoonJS强化了Canvas的表现。让HTML5游戏体验更好;UC、猎豹等手机浏览器也强化了音视频播放的表现。

无论是硬件升级、软件成熟,还是操作系统厂商策略变化,都在强力推动HTML5的爆发。

只是要注意。我说的HTML5爆发,不是指手机浏览器爆发。有人说HTML5不好,由于用户讨厌打开浏览器输入URL的过程。

我想说这样的想法是对HTML5的片面理解。

HTML5!=传统浏览器,尽管编程语言还是HTML、Javascript、CSS,但发行方式绝不是传统站点那么简单。HTML5应用的入口,反而非常少是启动浏览器输入URL。它能够是存在于手机桌面的图标、也能够来自超级App(如微信朋友圈)、以及搜索引擎、应用市场、广告联盟。

。到处都是它的入口。

它的入口,比原生App很多其它。

五、原生App的颠覆

HTML5的“性工能”障碍得到解决。能够接近原生App的效果,所以它就能够替代原生App吗?非常多人觉得,即使HTML5会发展的比方今好,也将是与原生App各占一部分市场的格局。要求不高的长尾应用会使用HTML5。而主流应用仍是原生App的天下。

但我觉得这种想法非常危急。就像HP的高层告诉沃兹:谁会在家里摆一台电脑呢?未来HTML5肯定会颠覆原生App。

“性工能”障碍的消除。仅仅是HTML5的劣势被削弱。但劣势被消除后,它的优势就会大放异彩,HTML5的优势是什么?对开发人员来说:

  • 跨平台 在多屏年代,开发人员的痛苦指数很高,人人都期盼HTML5能扮演救星。多套代码、不同技术工种、业务逻辑同步,这是折磨人的过程。有点类似个人电脑早期世界。那个时候的每家电脑都有自己的操作系统和编程语言,开发人员疲于做不同版本号,事实上DOS的盛行也很大程度是由于开发人员实在没精力给其它电脑敲代码。

    跨平台技术在早期大多由于性能问题夭折,但中后期硬件能力增强后又会占领主流,由于跨平台确实是刚需。

  • 高速迭代 移动互联网是一个快鱼吃慢鱼的时代。谁对用户的需求满足的更快。谁的试错成本更低。谁就拥有巨大的优势。互联网产品大多免费、且有网络效应,后入者抢夺用户的难度很大。使用原生开发,从招聘、开发、上线各个环节的效率都慢一倍以上,并且參与的人越多,沟通效率往往拖慢不止一倍。
  • 减低成本 创业者融资并不easy,怎样花钱更高效很重要。假设你使用原生开发的App和竞争对手使用HTML5开发的App没什么差别,但你的开发成本高出一倍,我相信没有投资人会喜欢给你投钱。

  • 导流入口多 HTML5应用导流很easy,超级App(如微信朋友圈)、搜索引擎、应用市场、浏览器,到处都是HTML5的流量入口。

    而原生App的流量入口仅仅有应用市场。聪明的HTML5开发人员当然会玩转各种流量入口从而取得更强的优势。

  • 分发效率高 前段时间微信朋友圈风靡一时《神经猫》,这个游戏假设放到Appstore,绝对没有那么多流量,超级App带来的流量,远大于原生应用市场。假如微信同意游戏在桌面创建快捷方式、假如游戏兴许升级解决持续娱乐问题,未来不可想象。除了入口多、流量大,导流效率高也不可忽视。谁都知道:页游和端游打相同的广告。广告变用户的转化率,页游远远高于端游。

HTML5对用户的优点是:和流量入口多、分发效率高相相应的。大幅减少使用门槛。

用户眼睛看到一个兴趣点,点击后,就应该马上開始满足用户需求。比方流媒体能够马上看,页游能够马上玩。而眼下的原生应用市场,用户须要这样操作:选一个应用、等待下载、确认权限、等待安装,然后点击打开。

这样糟糕的体验迟早要被颠覆。无论是App、游戏还是音视频,未来都将即点即用。

谁先满足用户这个需求,谁就制胜。

这就是所谓“天下武功。唯快不败”。分析至此,我们能够明显的看出。无论是站在终于用户角度、还是站在开发人员角度。HTML5必将代替原生应用当前的位置。并由此引发一系列颠覆。

六、还有什么会被改变?

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 。

版权声明:本文博主原创文章。博客,未经同意不得转载。

HTML 5最终确定,八年后,我们再谈谈如何改变世界的更多相关文章

  1. HTML 5终于定稿,八年后我们再一次谈谈怎么改变世界

    我们第一次谈论 HTML5 要改变世界大概是因为乔布斯,他坚持在 iOS 上不兼容 Flash,在 Adobe 统治多媒体开发的那个年代,这需要付出极大的勇气.这么多年过去了,虽然所有人都在谈论 HT ...

  2. Apple Watch 会再一次改变世界么?

    这一次苹果发布会,苹果推出了Apple Watch.他会像iPhone系列一样,去改变大家对于手表的理解么?会像iPhone一样受到大家的追捧么? 我觉得第一代的产品只可能是试探性的,真正能去引爆市场 ...

  3. 商业价值:苹果iTV,再一次改变世界?

    苹果(Apple)公司打算进军智能电视领域,这在行业里已经不是秘密,有关苹果智能电视的消息也是不绝于耳,结合苹果产品线的命名规则,苹果智能 电视基本上就是iTV.就目前而言,Android智能系统已经 ...

  4. 工作10年后,再看String s = new String("xyz") 创建了几个对象?

    这个问题相信每个学习java的同学都不陌生,作为一个经典的面试题,到现在工作这么多年了我真是认为挺操蛋的一个问题,在网上到现在你仍然可以看见很多讨论这个问题的人,其中不乏工作很多年的人都有争论,我认为 ...

  5. 让我们再谈谈 iOS 安全

    前言 安全方面的话题总是聊不完的.这不,国外一家有名的专门攻击别人的安全公司 Hacking Team 自己被 Hack 了,结果有 400 多 G 的攻击资料泄漏出来,包括一些 0-day 的漏洞. ...

  6. Intel 英特尔

    英特尔 英特尔 基本资料   公司名称:英特尔(集成电路公司)    外文名称:Intel Corporation(Integrated Electronics Corporation)    总部地 ...

  7. 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

    引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...

  8. 在Xcode中使用Git进行源码版本控制

    http://www.cocoachina.com/ios/20140524/8536.html 资讯 论坛 代码 工具 招聘 CVP 外快 博客new 登录| 注册   iOS开发 Swift Ap ...

  9. 学一点Git--20分钟git快速上手

    (图片已修复)在Git如日中天的今天,不懂git都不好意思跟人说自己是程序猿.你是不是早就跃跃欲试了,只是苦于没有借口(契机). 好吧,机会就在今天. 给我20分钟,是的,只要20分钟, 让你快速用上 ...

随机推荐

  1. LintCode 推断一个二叉树树是否是还有一个二叉树的子书

    有两个不同大小的二进制树: T1 有上百万的节点: T2 有好几百的节点. 请设计一种算法.判定 T2 是否为 T1的子树. /** * Definition of TreeNode: * class ...

  2. iOS 网络错误-分类

    在进行网络数据交换的时候总是遇到各种各样的错误. 这些网络错误是来自client还是server. 我们来梳理一下: 我们将错误分为三个大类 操作系统错误 http请求错误 应用错误 1.操作系统错误 ...

  3. [置顶] Embedded Server:像写main函数一样写Web Server

    1.传统的JEE Web Server 传统的JEE中,如果我们想要部署一个Web Application,我们需要首先安装一个Container Server,如JBoss,WebLogic,Tom ...

  4. POJ1422 最小路径覆盖入门

    题意:DAG求最小路径覆盖. 注意:二分匹配只试用于求DAG的最小路径覆盖, 有环就不行,具体可以理解证明. 对n个点进行拆点,分成左右两排点,对于边<u, v> 建  <u', v ...

  5. KL25开发板利用串口蓝牙与PC通信

    KL25开发板芯片本身支持三个串口,uart0,uart1,uart2.其中uart0不太一样,在数据手册里面单独一章介绍:而uart1和uart2则是一样的. 我所使用的串口蓝牙模块是BC04,支持 ...

  6. (76) Clojure: Why would someone learn Clojure? - Quora

    (76) Clojure: Why would someone learn Clojure? - Quora ★ Why would someone learn Clojure?   Edit

  7. How to get the source code of the chromium of the specified revision

    I'd like to get the source code of the chromium 34.0.1847.9. gclient config http://src.chromium.org/ ...

  8. 怎样用Java编写一段代码引发内存泄露

    通过下面步骤能够非常easy产生内存泄露(程序代码不能訪问到某些对象,可是它们仍然保存在内存中): 应用程序创建一个长时间执行的线程(或者使用线程池,会更快地发生内存泄露). 线程通过某个类载入器(能 ...

  9. C Coding Standard

    1 共同 Rule 1 编译的Warnings不能被忽略掉 Rule 2 在已有Code或者三方的code基础上的改动,同意使用原来的coding standard Rule 3 假设同意C和C++都 ...

  10. Copy xml 文件

    public static void copyFailFile(String bugID) throws Exception { File file = new File(".") ...