HTML 5最终确定,八年后,我们再谈谈如何改变世界
从原: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体验的丰富增强主要表如今:
- WebApp HTML5新增了离线存储、更丰富的表单(比方Input type=date)、js线程、socket、标准扩展embed、css3…
- 流媒体 HTML5新增了audio、video
- 游戏 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最终确定,八年后,我们再谈谈如何改变世界的更多相关文章
- HTML 5终于定稿,八年后我们再一次谈谈怎么改变世界
我们第一次谈论 HTML5 要改变世界大概是因为乔布斯,他坚持在 iOS 上不兼容 Flash,在 Adobe 统治多媒体开发的那个年代,这需要付出极大的勇气.这么多年过去了,虽然所有人都在谈论 HT ...
- Apple Watch 会再一次改变世界么?
这一次苹果发布会,苹果推出了Apple Watch.他会像iPhone系列一样,去改变大家对于手表的理解么?会像iPhone一样受到大家的追捧么? 我觉得第一代的产品只可能是试探性的,真正能去引爆市场 ...
- 商业价值:苹果iTV,再一次改变世界?
苹果(Apple)公司打算进军智能电视领域,这在行业里已经不是秘密,有关苹果智能电视的消息也是不绝于耳,结合苹果产品线的命名规则,苹果智能 电视基本上就是iTV.就目前而言,Android智能系统已经 ...
- 工作10年后,再看String s = new String("xyz") 创建了几个对象?
这个问题相信每个学习java的同学都不陌生,作为一个经典的面试题,到现在工作这么多年了我真是认为挺操蛋的一个问题,在网上到现在你仍然可以看见很多讨论这个问题的人,其中不乏工作很多年的人都有争论,我认为 ...
- 让我们再谈谈 iOS 安全
前言 安全方面的话题总是聊不完的.这不,国外一家有名的专门攻击别人的安全公司 Hacking Team 自己被 Hack 了,结果有 400 多 G 的攻击资料泄漏出来,包括一些 0-day 的漏洞. ...
- Intel 英特尔
英特尔 英特尔 基本资料 公司名称:英特尔(集成电路公司) 外文名称:Intel Corporation(Integrated Electronics Corporation) 总部地 ...
- 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路
引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...
- 在Xcode中使用Git进行源码版本控制
http://www.cocoachina.com/ios/20140524/8536.html 资讯 论坛 代码 工具 招聘 CVP 外快 博客new 登录| 注册 iOS开发 Swift Ap ...
- 学一点Git--20分钟git快速上手
(图片已修复)在Git如日中天的今天,不懂git都不好意思跟人说自己是程序猿.你是不是早就跃跃欲试了,只是苦于没有借口(契机). 好吧,机会就在今天. 给我20分钟,是的,只要20分钟, 让你快速用上 ...
随机推荐
- 别动我的奶酪:CSV文件数据丢零现象及对策
CSV文件在读入EXCEL时,对于前面有零的数据项,比如电话号码,会自作聪明地丢掉那个零. 比如,我有一个北京客户,其号码为01059178888,如果这是通过CSV文件来的数据,在EXCEL中打开时 ...
- OpenStack使用Bosh部署CloudFoundry(一)—准备OpenStack环境
版本说明: CloudFoundry:V2版本 OpenStack:Folsom或者Grizzly版本 本篇文章采用OpenStack Folsom+nova-network的OpenStack环境, ...
- 3D空间中射线与三角形的交叉检測算法
引言 射线Ray,在3D图形学中有非常多重要的应用.比方,pick操作就是使用射线Ray来实现的,还有诸如子弹射线的碰撞检測等等都能够使用射线Ray来完毕. 所以,在本次博客中,将会简单的像大家介绍下 ...
- Swift - 使用set,get确保索引加减在正常的范围内
通过类的计算属性set和get,我们可以对索引的加减进行保护.下面是一个样例,索引index初始值是0,有效范围是0~2.不管是index++还是index--,索引都是一直在这个范围能循环遍历. 1 ...
- Java加入背景音乐
近期有几个师妹找我给她们的Java期末作业加入背景音乐,非常久不琢磨Java的我花费整晚才搞定,羞愧.在博客中记录下来.警示自己.也帮助一下大家. Java中能够通过AudioClip类来实现音乐播放 ...
- 【iOS开发-31】UITabBar背景、icon图标颜色、被选中背景设置以及隐藏UITabBar的两种方式
一.对UITabBar背景和icon图标的一些设置 (1)由于直接给UITabBar设置的背景颜色显示的不纯.半透明的感觉,所以,有时候我们能够直接利用纯色的图片作为背景达到想要的效果. (2)给ic ...
- Codeforces 39E What Has Dirichlet Got to Do with That? 游戏+内存搜索
主题链接:点击打开链接 意甲冠军: 特定 a一箱 b球 不变n (球和箱子都不尽相同,样的物品) 设 way = 把b个球放到a个箱子中的方法数, 若way >= n则游戏结束 有2个人玩游戏. ...
- POJ 2773 Happy 2006 数学题
题目地址:http://poj.org/problem?id=2773 因为k可能大于m,利用gcd(m+k,m)=gcd(k,m)=gcd(m,k)的性质,最后可以转化为计算在[1,m]范围内的个数 ...
- HealthKit开发教程Swift版:起步
原文:HealthKit Tutorial with Swift: Getting Started 作者:Ernesto García 译者:Mr_cyz ) HealthKit是iOS 8中的新的A ...
- C#数学运算表达式解释器
C#数学运算表达式解释器 測试文件内容: a=2+3*2; b=2*(2+3); 浏览按钮事件处理程序: private void button_browse_Click(object sender, ...