论文部分内容阅读
乔布斯早在2010年的公司会议上就说过“没有人愿意使用Flash,全球已经开始步入H5时代”。
H5是第5代HTML的简称,所谓HTML是“超文本标记语言”的英文缩写。我们上网所看到的网页,多数都是由HTML写成的。浏览器通过解码HTML,就可以把网页内容显示出来,它也构成了互联网兴起的基础。
谷歌浏览器于2015年9月1日起不再自动播放Flash;亚马逊宣布旗下网络,包括Amazon.eom门户在内的所有广告将不再使用Flash;现在,很多APP的内容都是以H5的形式呈现,典型的例子包括微信、Facebook、Twitter等。
从引爆朋友圈的H5小游戏《围住神经猫》,到颠覆传统广告的大众点评H5专题页《我们之间只有一个字》,2014下半年起,国内各种H5游戏和专题页纷纷崭露头角。
有调查显示,浏览量最高的1000个H5作品中,42%是心灵鸡汤,27%是测试题,15%是社交互动游戏,5%是大型品牌宣传。
如乔布斯所言,随着移动互联网的迅猛发展,H5已然成为移动营销领域中市场推广利器,然而,如何让H5在更多场景下得到广泛的使用,一直是业界不断探索的方向。
H5为什么会比前几代语言更加街知巷闻?平台型互联网企业和垂直的互联网公司如何介入H5?C端和B端,谁会是H5的下一个爆发点?以兼容性著称的H5是否也面临兼容难题?
比“前辈”更幸运
H5“爆红”,不仅取决于它天生的跨平台属性、原生应用(NativeAPP)的适配瓶颈,还需要等待智能移动终端性能和网络速度大幅提升的环境因素来临。
对于一种编程语言来说,H5无疑是它们中的宠儿,它得到的不仅是开发者的关注,还吸引了众多“门外汉”的目光。现在,哪家公司要是在朋友圈里不发个H5的邀请函、小调查、招聘启事的,都不好意思说自己是移动互联网时代的好公司了。
H5能蓬勃发展,在于它不再只是一种标记语言,它为下一代互联网提供了全新的框架和平台。
为了适配Android和iOS这两大智能手机系统阵营,一个做APP的团队,需要准备两套班子来适应用户两种手机。而在Android体系中,版本的分裂和机型的五花八门,想要求得极致的体验,还得反复测试各种版本和机型。H5最显著的优势在于可以直接在网页上调试和修改,这也就带来了H5跨平台的特性,它可以兼容PC端与移动端、Windows与Linux、Android与iOS,这种强大的兼容性可以显著降低开发与运营成本。
不同于APP的C/S架构,H5采用的B/S架构决定了它天然的跨平台属性。B/S结构是Web兴起后的一种网络结构模式,Web浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),浏览器就可以通过Web Server同数据库进行数据交互。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,从而达到降低总体成本(TCO)的目的。
但是,B/S架构有一个缺陷,对硬件速度和网络速度要求很高,尤其是网络速度,“当网络速度不够快的时候,进度条要等很久。所以,B/S的架构在网络不好的情况下,是很难发展起来的。”云适配CEO陈本峰说。陈本峰是H5中国产业联盟专家委员,曾任职于微软美国总部IE浏览器核心团队,参与IE的H5引擎设计开发以及下一代互联网标准H5国际标准制定。
也就是说,H5今天的“爆红”,不仅取决于它天生的跨平台属性、原生应用的适配瓶颈,还需要有智能移动终端性能和网络速度大幅提升的环境因素。
正如W3C(万维网联盟)创始人Tim Berners-Lee评论的:“今天,我们想做的事情已经不再是通过浏览器观看视频或收听音频,或者在一部手机上运行浏览器。我们希望通过不同的设备,在任何地方,都能够共享照片,网上购物,阅读新闻,以及查找信息。虽然大多数用户对H5和开放Web平台并不熟悉,但是它们正在不断改进用户体验。”
受H5目前的主流应用领域的影响,有56.65%的用户比较看好H5在游戏开发领域的应用,有77.95%的用户看好企业的H5营销推广,37.64%的用户看好通过H5访问企业内部办公网页、企业级网页等企业级应用领域(见图1)。
H5并不完美。来自2015《HTML5开发者应用情况调查报告》的数据显示,32.32%的调查对象希望H5能在交互和加载能力等运行表现上变得更强大;19.39%的人希望H5相比于APP能提高API接口的硬件接入能力(见图2)。
而作为企业的技术方向的决策者,80%的CIO认为H5在市场教育上还有所缺乏,处于知道、但并不完全了解的阶段(见图3)。
就像网站并没有杀死软件一样,Web APP也很难杀死Native APP,即便得到H5支持的Web APP。更有可能的是,一个Native APP里在部分甚至大部分模块里包含H5——事实上,微信就是这样的应用,Facebook所谓退回NativeAPP,本质上也是网页打包进入它的那个原生应用。很难有泾渭分明的Web APP或者Native APP。
互联网巨头:美味H5“入口”
以H5应用为重心的领域正在吸引互联网巨头不断靠拢,从他们的布局可以一窥互联网风往哪个方向吹。
H5早在2008年就发布了草案,但并未引起广泛关注,而是进入了长期的迭代优化周期。直到2014年10月,W3C终于宣布,H5标准规范最终制定完成并向全世界开放。
在中国,无论是腾讯早期推其浏览器之时,还是后来百度为了打破APP的不可搜索性而力推,都没有将H5引爆。倒是最近随着微信朋友圈“霸屏”,H5才算在互联网世界中火了起来。 不经过大量的兼容性测试和修复,H5也没法实现真正跨平台。
过去这些年,H5几乎已经彻底改变了PC互联网甚至移动互联网的格局。
纵观H5的发展史,一波三折,有用户的需求推动,有技术开发者的需求推动,更有巨大的商业利益在推动。如今,随着4G的普及以及手机硬件性能的飞速发展,H5一直被诟病的性能问题逐渐被淡化,H5也逐渐被人们接受成为信息和应用的载体。
过去的2015年,H5的确得到蓬勃的发展,尤其在微信朋友圈的营销上。然而,H5要走出微信朋友圈,在各种场景下得到广泛的使用,还有很长一段路要走。
看上去很美
业界一直都说H5的杀手级武器是跨平台,相比原生APP要针对不同手机操作系统做开发,H5只需一次开发,就可以在所有操作系统上运行。
H5是唯一一个通吃PC、Mac、iPhone、iPad、Android、WindowsPhone等主流平台的跨平台语言。Java和Flash都曾梦想这个位置,但都梦断于iOS。此时,人们纷纷开始研究基于H5开发跨平台手机应用,很多人都认为,原生应用只是过渡,就像当年从C/S结构转变为B/S结构一样。而且学习Objective-C和Java很费劲,既然会网页开发,为何不试试H5。
然而,H5毕竟只是一个技术标准,所以跨平台只是理论上的跨平台。在实际应用过程中,大家会发现各种浏览器之间存在各种各样的差异性,导致H5页面在不同浏览器上显示的效果不一致,于是要经过大量的兼容性测试和修复才能真正实现“一次开发,所有平台完美运行”的理想,而这样的工作量并不小。
对此,大家可能有疑问:H5不是国际标准么,浏览器都遵守H5国际标准来开发的话,不应该出现不一致啊?
其实,这里面有多方面的原因:
首先,H5的功能是个巨大的集合,浏览器产商不可能在一个版本开发周期中实现所有的H5能力,每个版本都只能开发一小部分子集。不同的浏览器产商会根据自己对市场的判断以及公司的战略,制定自己的开发路线图,所以自然会出现不同浏览器支持的H5功能集合不一致;
其次,W3C一直把制定的标准文档定义成“Recommendation(意思为“推荐”)”,也就是说,H5并不是一个强制的标准。如果开发者写的HTML网页不符合标准,浏览器依然能够显示。
事实上,互联网上有95%以上的网页都是不符合W3C标准的。结果就是,网页中有大量的异常情况,需要浏览器自己去修复。如何修复不标准的网页并没有一个固定做法,所以不同浏览器产商都有自己的一套解决方式。这也导致了各个浏览器虽然都是按照相同的W3C来开发的,但是最后的代码算法是不同的,继而导致了显示结果不一致;
第三,互联网是个高速发展的市场,每个浏览器产商都要为适应新的市场变化开发具有足够创新升级版本。然而向前创新和向后兼容往往是矛盾的,所以浏览器产商在新版本中可能会做出一些巨大的代码调整。
然而,浏览器是安装在用户手机上客户端程序,用户有权利选择是否进行升级。这就导致了即使是同一个产商的浏览器,你还得为它的不同版本做相应的兼容性修复。这一点相信大家在PC时代的IE浏览器上都吃过很多苦头,每个前端开发者都需要为IE6、IE7等不同版本做出大量的工作;
第四,今天的手机操作系统是个非常碎片化的市场。Android的开发性为它带来了高速的市场覆盖,但同时也带来了极度碎片的版本分支。几乎每个手机产商都会做一些定制,以实现自己在市场上的差异化。小米有MIUI、华为有EMUI、三星有TouchWiz等等。手机操作系统自带的默认浏览器也会做相应的定制,因此导致H5网页在不同手机操作系统的默认浏览器上显示不一致。
由于很多第三方APP内嵌浏览器一般都直接调用了操作系统自带的浏览器内核,从而导致网页在了不同手机上显示效果不一样,这点在混合APP(HybridAPP)中体现尤为明显。
如何解决H5在实际应用中的兼容性问题?
上面提到了诸多H5不能真正跨平台的原因,可能很多朋友们就要问了,如何解决?其实解决H5在实际应用中的兼容性难题,真正实现H5的跨平台,有两个途径:
途经一:通过H5的底层框架来屏蔽不同浏览器的兼容问题,所有的H5应用在框架之上来开发。
像国外的Bootstrap、jQuery UI等都是很好的UI框架,基于他们之上来开发可以减少大量的兼容性调试工作。当然,这些国外的UI框架都是针对国外的审美观、国外的主流浏览器和操作系统,国产的Amaze UI也是类似的框架,但是针对国内网民的样式喜好以及主流移动浏览器或带有浏览器功能的APP(比如微信)做了大量的调整优化;
途径二:通过让用户使用自有内核的固定浏览器,这样就不存在兼容多个浏览器或者操作系统的问题了。
然而,对于普遍的大众网民,没有任何一个企业或者是组织强制大家使用哪一款浏览器。但是,在企业内部办公的场景中,这种方式是比较可取的。
一方面,公司的员工数目有限,多的也就几千人上万人,所以,IT开发人员花大量时间去做兼容性测试和修复是一件投入产生比很低的事情,对公司效益没有任何帮助;
另外一方面,市面上各种浏览器的安全能力参差不齐,让员工自由选择浏览器是一件风险很大的事情,极有可能会导致企业数据泄露或者木马入侵。
因此,让员工使用公司经过安全认证的固定浏览器,一方面大幅度减轻IT开发的工作量,另外一方面有效保障企业数据安全,事半功倍。
H5作为一种开发语言,最终都是需要运行在浏览器上的。因此,要使H5的优势充分发挥在应用在移动办公方面,必须要有一个带自有内核并且专门针对企业的安全管理优化的浏览器。
不管怎样说,虽然H5跨平台的能力受限于操作系统的碎片化,仍然显得不完美,但是其天然的跨平台能力已经在很大程度上为开发者们带来了巨大的价值。
原因不言而喻。对于开发者而言,除了iOS、Android,开发者为什么不愿意再开发WP版本,很多时候是因为工作量太大,除了版本适配,分辨率调整等,一旦有新版本推出,在原生应用中开发者不得不等待多达两周时间去接受审核,跨平台在多屏时代给开发者非常痛苦的体验,人们都期待当年Java的一次编译处处运行的理想情况。
而H5目前正在扮演这样一个开发者救星的角色,这里面只需要有一个统一的企业级浏览器就可以了。
作者为云适配CEO,HTML5中国产业联盟专家委员。曾任职于微软美国总部IE浏览器核心团队,参与IE的HTML5引擎设计开发以及下一代互联网标准HTML5国际标准制定。专注互联网标准以及浏览器相关技术研究超过10年,著名的IE 404页面就是出自陈本峰之手。
H5是第5代HTML的简称,所谓HTML是“超文本标记语言”的英文缩写。我们上网所看到的网页,多数都是由HTML写成的。浏览器通过解码HTML,就可以把网页内容显示出来,它也构成了互联网兴起的基础。
谷歌浏览器于2015年9月1日起不再自动播放Flash;亚马逊宣布旗下网络,包括Amazon.eom门户在内的所有广告将不再使用Flash;现在,很多APP的内容都是以H5的形式呈现,典型的例子包括微信、Facebook、Twitter等。
从引爆朋友圈的H5小游戏《围住神经猫》,到颠覆传统广告的大众点评H5专题页《我们之间只有一个字》,2014下半年起,国内各种H5游戏和专题页纷纷崭露头角。
有调查显示,浏览量最高的1000个H5作品中,42%是心灵鸡汤,27%是测试题,15%是社交互动游戏,5%是大型品牌宣传。
如乔布斯所言,随着移动互联网的迅猛发展,H5已然成为移动营销领域中市场推广利器,然而,如何让H5在更多场景下得到广泛的使用,一直是业界不断探索的方向。
H5为什么会比前几代语言更加街知巷闻?平台型互联网企业和垂直的互联网公司如何介入H5?C端和B端,谁会是H5的下一个爆发点?以兼容性著称的H5是否也面临兼容难题?
比“前辈”更幸运
H5“爆红”,不仅取决于它天生的跨平台属性、原生应用(NativeAPP)的适配瓶颈,还需要等待智能移动终端性能和网络速度大幅提升的环境因素来临。
对于一种编程语言来说,H5无疑是它们中的宠儿,它得到的不仅是开发者的关注,还吸引了众多“门外汉”的目光。现在,哪家公司要是在朋友圈里不发个H5的邀请函、小调查、招聘启事的,都不好意思说自己是移动互联网时代的好公司了。
H5能蓬勃发展,在于它不再只是一种标记语言,它为下一代互联网提供了全新的框架和平台。
为了适配Android和iOS这两大智能手机系统阵营,一个做APP的团队,需要准备两套班子来适应用户两种手机。而在Android体系中,版本的分裂和机型的五花八门,想要求得极致的体验,还得反复测试各种版本和机型。H5最显著的优势在于可以直接在网页上调试和修改,这也就带来了H5跨平台的特性,它可以兼容PC端与移动端、Windows与Linux、Android与iOS,这种强大的兼容性可以显著降低开发与运营成本。
不同于APP的C/S架构,H5采用的B/S架构决定了它天然的跨平台属性。B/S结构是Web兴起后的一种网络结构模式,Web浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),浏览器就可以通过Web Server同数据库进行数据交互。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,从而达到降低总体成本(TCO)的目的。
但是,B/S架构有一个缺陷,对硬件速度和网络速度要求很高,尤其是网络速度,“当网络速度不够快的时候,进度条要等很久。所以,B/S的架构在网络不好的情况下,是很难发展起来的。”云适配CEO陈本峰说。陈本峰是H5中国产业联盟专家委员,曾任职于微软美国总部IE浏览器核心团队,参与IE的H5引擎设计开发以及下一代互联网标准H5国际标准制定。
也就是说,H5今天的“爆红”,不仅取决于它天生的跨平台属性、原生应用的适配瓶颈,还需要有智能移动终端性能和网络速度大幅提升的环境因素。
正如W3C(万维网联盟)创始人Tim Berners-Lee评论的:“今天,我们想做的事情已经不再是通过浏览器观看视频或收听音频,或者在一部手机上运行浏览器。我们希望通过不同的设备,在任何地方,都能够共享照片,网上购物,阅读新闻,以及查找信息。虽然大多数用户对H5和开放Web平台并不熟悉,但是它们正在不断改进用户体验。”
受H5目前的主流应用领域的影响,有56.65%的用户比较看好H5在游戏开发领域的应用,有77.95%的用户看好企业的H5营销推广,37.64%的用户看好通过H5访问企业内部办公网页、企业级网页等企业级应用领域(见图1)。
H5并不完美。来自2015《HTML5开发者应用情况调查报告》的数据显示,32.32%的调查对象希望H5能在交互和加载能力等运行表现上变得更强大;19.39%的人希望H5相比于APP能提高API接口的硬件接入能力(见图2)。
而作为企业的技术方向的决策者,80%的CIO认为H5在市场教育上还有所缺乏,处于知道、但并不完全了解的阶段(见图3)。
就像网站并没有杀死软件一样,Web APP也很难杀死Native APP,即便得到H5支持的Web APP。更有可能的是,一个Native APP里在部分甚至大部分模块里包含H5——事实上,微信就是这样的应用,Facebook所谓退回NativeAPP,本质上也是网页打包进入它的那个原生应用。很难有泾渭分明的Web APP或者Native APP。
互联网巨头:美味H5“入口”
以H5应用为重心的领域正在吸引互联网巨头不断靠拢,从他们的布局可以一窥互联网风往哪个方向吹。
H5早在2008年就发布了草案,但并未引起广泛关注,而是进入了长期的迭代优化周期。直到2014年10月,W3C终于宣布,H5标准规范最终制定完成并向全世界开放。
在中国,无论是腾讯早期推其浏览器之时,还是后来百度为了打破APP的不可搜索性而力推,都没有将H5引爆。倒是最近随着微信朋友圈“霸屏”,H5才算在互联网世界中火了起来。 不经过大量的兼容性测试和修复,H5也没法实现真正跨平台。
过去这些年,H5几乎已经彻底改变了PC互联网甚至移动互联网的格局。
纵观H5的发展史,一波三折,有用户的需求推动,有技术开发者的需求推动,更有巨大的商业利益在推动。如今,随着4G的普及以及手机硬件性能的飞速发展,H5一直被诟病的性能问题逐渐被淡化,H5也逐渐被人们接受成为信息和应用的载体。
过去的2015年,H5的确得到蓬勃的发展,尤其在微信朋友圈的营销上。然而,H5要走出微信朋友圈,在各种场景下得到广泛的使用,还有很长一段路要走。
看上去很美
业界一直都说H5的杀手级武器是跨平台,相比原生APP要针对不同手机操作系统做开发,H5只需一次开发,就可以在所有操作系统上运行。
H5是唯一一个通吃PC、Mac、iPhone、iPad、Android、WindowsPhone等主流平台的跨平台语言。Java和Flash都曾梦想这个位置,但都梦断于iOS。此时,人们纷纷开始研究基于H5开发跨平台手机应用,很多人都认为,原生应用只是过渡,就像当年从C/S结构转变为B/S结构一样。而且学习Objective-C和Java很费劲,既然会网页开发,为何不试试H5。
然而,H5毕竟只是一个技术标准,所以跨平台只是理论上的跨平台。在实际应用过程中,大家会发现各种浏览器之间存在各种各样的差异性,导致H5页面在不同浏览器上显示的效果不一致,于是要经过大量的兼容性测试和修复才能真正实现“一次开发,所有平台完美运行”的理想,而这样的工作量并不小。
对此,大家可能有疑问:H5不是国际标准么,浏览器都遵守H5国际标准来开发的话,不应该出现不一致啊?
其实,这里面有多方面的原因:
首先,H5的功能是个巨大的集合,浏览器产商不可能在一个版本开发周期中实现所有的H5能力,每个版本都只能开发一小部分子集。不同的浏览器产商会根据自己对市场的判断以及公司的战略,制定自己的开发路线图,所以自然会出现不同浏览器支持的H5功能集合不一致;
其次,W3C一直把制定的标准文档定义成“Recommendation(意思为“推荐”)”,也就是说,H5并不是一个强制的标准。如果开发者写的HTML网页不符合标准,浏览器依然能够显示。
事实上,互联网上有95%以上的网页都是不符合W3C标准的。结果就是,网页中有大量的异常情况,需要浏览器自己去修复。如何修复不标准的网页并没有一个固定做法,所以不同浏览器产商都有自己的一套解决方式。这也导致了各个浏览器虽然都是按照相同的W3C来开发的,但是最后的代码算法是不同的,继而导致了显示结果不一致;
第三,互联网是个高速发展的市场,每个浏览器产商都要为适应新的市场变化开发具有足够创新升级版本。然而向前创新和向后兼容往往是矛盾的,所以浏览器产商在新版本中可能会做出一些巨大的代码调整。
然而,浏览器是安装在用户手机上客户端程序,用户有权利选择是否进行升级。这就导致了即使是同一个产商的浏览器,你还得为它的不同版本做相应的兼容性修复。这一点相信大家在PC时代的IE浏览器上都吃过很多苦头,每个前端开发者都需要为IE6、IE7等不同版本做出大量的工作;
第四,今天的手机操作系统是个非常碎片化的市场。Android的开发性为它带来了高速的市场覆盖,但同时也带来了极度碎片的版本分支。几乎每个手机产商都会做一些定制,以实现自己在市场上的差异化。小米有MIUI、华为有EMUI、三星有TouchWiz等等。手机操作系统自带的默认浏览器也会做相应的定制,因此导致H5网页在不同手机操作系统的默认浏览器上显示不一致。
由于很多第三方APP内嵌浏览器一般都直接调用了操作系统自带的浏览器内核,从而导致网页在了不同手机上显示效果不一样,这点在混合APP(HybridAPP)中体现尤为明显。
如何解决H5在实际应用中的兼容性问题?
上面提到了诸多H5不能真正跨平台的原因,可能很多朋友们就要问了,如何解决?其实解决H5在实际应用中的兼容性难题,真正实现H5的跨平台,有两个途径:
途经一:通过H5的底层框架来屏蔽不同浏览器的兼容问题,所有的H5应用在框架之上来开发。
像国外的Bootstrap、jQuery UI等都是很好的UI框架,基于他们之上来开发可以减少大量的兼容性调试工作。当然,这些国外的UI框架都是针对国外的审美观、国外的主流浏览器和操作系统,国产的Amaze UI也是类似的框架,但是针对国内网民的样式喜好以及主流移动浏览器或带有浏览器功能的APP(比如微信)做了大量的调整优化;
途径二:通过让用户使用自有内核的固定浏览器,这样就不存在兼容多个浏览器或者操作系统的问题了。
然而,对于普遍的大众网民,没有任何一个企业或者是组织强制大家使用哪一款浏览器。但是,在企业内部办公的场景中,这种方式是比较可取的。
一方面,公司的员工数目有限,多的也就几千人上万人,所以,IT开发人员花大量时间去做兼容性测试和修复是一件投入产生比很低的事情,对公司效益没有任何帮助;
另外一方面,市面上各种浏览器的安全能力参差不齐,让员工自由选择浏览器是一件风险很大的事情,极有可能会导致企业数据泄露或者木马入侵。
因此,让员工使用公司经过安全认证的固定浏览器,一方面大幅度减轻IT开发的工作量,另外一方面有效保障企业数据安全,事半功倍。
H5作为一种开发语言,最终都是需要运行在浏览器上的。因此,要使H5的优势充分发挥在应用在移动办公方面,必须要有一个带自有内核并且专门针对企业的安全管理优化的浏览器。
不管怎样说,虽然H5跨平台的能力受限于操作系统的碎片化,仍然显得不完美,但是其天然的跨平台能力已经在很大程度上为开发者们带来了巨大的价值。
原因不言而喻。对于开发者而言,除了iOS、Android,开发者为什么不愿意再开发WP版本,很多时候是因为工作量太大,除了版本适配,分辨率调整等,一旦有新版本推出,在原生应用中开发者不得不等待多达两周时间去接受审核,跨平台在多屏时代给开发者非常痛苦的体验,人们都期待当年Java的一次编译处处运行的理想情况。
而H5目前正在扮演这样一个开发者救星的角色,这里面只需要有一个统一的企业级浏览器就可以了。
作者为云适配CEO,HTML5中国产业联盟专家委员。曾任职于微软美国总部IE浏览器核心团队,参与IE的HTML5引擎设计开发以及下一代互联网标准HTML5国际标准制定。专注互联网标准以及浏览器相关技术研究超过10年,著名的IE 404页面就是出自陈本峰之手。