HTML 5 会让iOS和Android开发者转行吗?

Stella981
• 阅读 421

HTML 5 会让iOS和Android开发者转行吗?

我们第一次谈论 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 垄断了。

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
5个月前
初学 Python 需要安装哪些软件?超级实用,小白必看!
编程这个东西是真的奇妙。对于懂得的人来说,会觉得这个工具是多么的好用、有趣,而对于小白来说,就如同大山一样。其实这个都可以理解,大家都是这样过来的。那么接下来就说一下python相关的东西吧,并说一下我对编程的理解。本人也是小白一名,如有不对的地方,还请各位大神指出01名词解释:如果在编程方面接触的比较少,那么对于软件这一块,有几个名词一定要了解,比如开发环
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
小森森 小森森
5个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
5个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序selectfromtable_nameorderiddesc;2.按照指定(多个)字段排序selectfromtable_nameorderiddesc,statusdesc;3.按照指定字段和规则排序selec
Stella981 Stella981
1年前
Angular material mat
IconIconNamematiconcode_add\_comment_addcommenticon<maticonadd\_comment</maticon_attach\_file_attachfileicon<maticonattach\_file</maticon_attach\
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
helloworld_28799839 helloworld_28799839
5个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue
helloworld_34035044 helloworld_34035044
8个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为