您的位置:首页 > Web前端 > HTML5

Flash和HTML5那点事:后者拿什么取代Flash?

2010-07-01 09:32 453 查看
最近关于HTML5 吵得火热,很多人认为HTML5出现会秒杀Flash,以至于在各大web前端开发论坛吵得不可开交。论坛里三言两语说的不够 尽兴,只好在自己一亩三分地里敞开了说说。也当一次神棍,展望一下web前端开发的未来。首先这里所说的HTML5也不仅指HTML5本身,而是泛指HTML5、CSS3、 JavaScript以及新的浏览器API所包含的整 个web前端技术。
 
 
 谁需要HTML5?   

Google最需要!Apple的Jobs也需要。但这两个肯定各怀鬼胎。微软无所谓了,反正他还有Silverlight。

Mozilla/Firefox非盈利组织,目标可能会高尚些,是w3c标准就要支持。Opera那点浏览器市场占有率估计还没敢有太多想 法。

Google的云计算帝国就差一个支持 RIA(Rich Internet Applications)富互联网应用的客户端了,试想 HTML5得到普及,更多的应用转向BS模式时,微软帝国的桌面软件生态环境必定受到很大威胁,垂涎多年的Google一定是最大受益者。当在一台操作系 统免费的电脑上使用和MS Word差不多功能的免费Google Doc时,你还会掏钱买微软的Word吗?当你所有的办公应用都只需要打开浏览器窗口 时,你还会花钱买操作系统吗?Google的Chrome OS操作系统界面已经说明了这个意图。

Jobs也需要HTML5,他是打着小算盘,想让浏览器原生支持视频音频,这样iPhone、iPad就不用嵌入Flash,Jobs当然 不能让Flash进iPhone OS,要不然App Store里的游戏谁去买?同时,如果大量的应用都能基于浏览器实现时,用户就不会被 Windows的桌面应用套牢了。漂亮的Mac电脑谁不喜欢。

他们选择 HTML5都是为了更大野心,期望HTML5带来整个软件生态环境的改变,同时避开不受自己控制的Flash。

Macromedia和后来的当家Adobe把握住了互联网应用的发展需求,不断的完善的Flash,使之已经超越了浏览器本身的功能。各 大浏览器厂商也看到这种应用的需求,不甘于一个本该浏览器实现的功能,由一个几兆大小的 Plugin实现了,并玩的风生水起。于是不遗余力的推进 HTML5,并且矛头直指Flash。

用户想要HTML5吗?用户要的不是技术,是应用,是体验。如果你能拿Ajax实现一个开心农场,我想没谁会在乎它是不是Flash做的。

开发者想要 HTML5吗?那需要一个成熟的HTML5+CSS3+JS的开发环境,需要各个浏览器提供统一的用户体验,即标准的完全兼 容。还需要增加新的学习成本。

 Flash 的优势?    
Flash比HTML5强在哪?性能,功能?如果说HTML5将拥有和Flash所有内置对象类似的DOM 呢,还有GPU的2D、3D加 速呢?这不是没可能,毕竟HTML5还只是草案。当然Flash也能不停的更新。

开发群体 
我认为Flash的优势是在开发人员上,十多年的积累,有众多优秀的艺术家、程序员和互动设计师集中在Flash平台上做互动媒体开发。也 使无数的类库有了AS版,如FLARToolKit,Touchlib,OpenCV这些互动、图像分析的c++库都移植到了Flash平台。在RIA应 用上有相对成熟且开源的Flex框架,越来越多的企业在尝试使用Flex替代Ext等 Ajax框架,为客户提供更好RIA应用体验。

持续发展    
FlashPlayer 是一个封闭的系统,是由Adoeb独家控制,相对于开放的HTML5标准这是弱势,也是技术上的优势,它可以很灵 活,可以随时加入新技术,新功能。而 HTML5是一个公开标准,既然是标准就意味着不会经常改动。Flash的改进升级只需要用户升级 FlashPlayer插件,插件的升级相对用户来说,是轻量级的。HTML标准的改进意味着升级浏览器,这是相对重量级的用户操作,尤其是还有很多人不 明白什么是浏览器。

HTML5开放标准一旦确定下来,就会有一个很长的使用周期,今天看是足够先进的功能,十年后呢。就像当年我们用着 HTML4+CSS2+JS沾沾自喜以为足够表现Web应用时,谁能想到今天Flash不断改进所开拓的天地呢。或许十年后我们又该讨论HTML6秒杀 Flash的话题了。

超越web应用 
如果当时SUN能重视Java Applet,或许就没有Flash的今天,SUN也不会沦落到被收购的境地。而如今Adobe AIR更 是让Flash超越Java Applet,让Flash超越了web,脱离了浏览器。Flash到如今功能不断增强,在多媒体领域也在不断地压缩自家老 大哥Director的应用空间。多点触摸、人脸识别、Socket通讯同步、AR增强现实、实时视频等等功能在Flash平台上的实现,让越来越多的互 动多媒体项目采用Flash方案。

希望Adobe继续能扩展Adobe AIR平台的功能,提高性能。能有越来越多的跨平台桌面应用在AIR上实现。

 Flash 的劣势?    

FlashPlayer版权私有。
swf文件的内容相对封闭,搜索引擎不友好。 

插件的安全隐患。
相对与Ajax技术的学习曲线及学习成本。 

FlashPlayer 94%装机率!=100%。
iPhoneOS明确不支持Flash,而iPad首日12万的订单,预计将会开启一个大市场。 

不支持3D硬件加速。FlashPlayer如果支持3D硬件加速,必将重写现有的2D矢量引擎,鉴于ShockWave 3D的 表现,FlashPlayer 硬件3D,很难有很好的用户体验!

 HTML5拿什么取代Flash    

功能 

HTML5目前还只是草案,从已提交的内容来看,增加了许多更具语义的标签,新的标签意味着在DOM中增加新的类,如果把浏览器比做一个大 的 Flashplayer,HTML5无非就是在增加新的类,新的API。然后由JavaScript来调用这些API。

如果HTML5要完全取代Flash,至少要提供和Flashplayer10相似的功能。

这应该不是问题,添加WebSocket 、WebSQL、WebGL……甚至WebQt、WebMFC都是可以无尽畅想的。或者干脆把浏 览器就做成一个大虚拟机,完成Java的桌面遗愿。如果有足够的需求动力,这些都不是问题。

性能 

在很多 HTML5激进派的文章里,都痛指目前Flash的效率低下,导致浏览崩溃。真的是Flash效率低到如此不堪吗?肯定不是,只是 Flash的滥用和参差不齐的Web前端开发人员造成的。同样如果用IE的JS引擎写一个Ajax版的XX农场,如果所有页面广告动画都用JS来写,我想 那才叫效率低下。如果真的Flash效率低,为什么那么多网页游戏都不是Ajax做的呢?为什么很多优化的很好的Flash3D游戏场景都很流畅,而一个 2D的XX农场就能拖慢你的酷睿2呢?不明真相的半吊子开发人员总是把浏览器不响应和崩溃归结于Flash效率低下。
所以未来HTML5要取代Flash 必须有一个高效的2D/3D图形文字渲染引擎,和一个高效的JavaScript引擎。这样 才能带来更好的用户体验。这些,众浏览器厂商都准备好了吗?Chrome和Opera似乎正在走这条路。 

兼容性 

HTML4标准已经十多年了,今天我们还会写下fxckIE6的CSS样式名。浏览器的兼容性会是最大的问题,尤其是加入n多特性后的 HTML5和CSS3。IE,Firefox,Chrome,Safari这些浏览器背后的大佬们,怎么去协调呢?这有个矛盾,开发差异化的产品,却要提 供同质化的功能。JS性能、标签浏览,同步收藏,插件这些提高用户体验的功能,都是这些差异化的方向。如果再出现类似ActiveX这类IE only的 东西,那还不如维持HTML4这种方式不变。

开发模式 

Flash IDE将无数优秀的艺术家、UI设计师和互动程序设计师团结在一起,最终成就了Flash,这也与Macromedia和 Adobe在图形设计和互动设计群体中的号召力不无关系。

HTML5的互动会将JavaScript提高到一个新的高度,这必将需要一个成熟的开发环境。继续DW+Firebug?或者DW升级为 全新的HTML5互动开发IDE,或者微软VS来干这件事,或者是Eclipse?

成熟的开发环境才能聚拢人才,才能激发无穷的创造力,带来更多的内容。丰富的内容自然带来更多用户。

部署 

这是最重要的一个问题,没有这一步,一切都是零。

Flash新版本怎么部署?在90%多桌面占有率的基础上更新插件就OK。HTML5怎么部署,更新浏览器,这个有点难,看看顽强的 IE6。听到有人建议微软在系统 ServerPack里包含IE更新,只能说这想法很好,但是反垄断的大锤一定会把微软砸死。

那怎么引导用户去升级浏览器呢?对于互联网“Core User”来说不是问题,目前支持HTML5和CSS3部分特性的Chrome开发 版,很多人都在用了。但是那些“Light User”呢,可能连天天看网页用的这个窗口跟浏览器是什么关系都不明白。

这需要一个HTML5的杀手级应用去引导,“Light User”几乎不会以技术为导向去升级浏览器的,他们只会以应用需求为导向去升 级。比如YouTube不再支持IE6用户,这样喜欢YouTube视频的用户会去升级IE6再来访问。用户不会是因为IE6的HTML标准兼容差而选择 更新IE6,这是必然的。

那HTML5的杀手级应用在哪里呢?或者说都有Youtube这样的影响力和号召力吗?而没有这种号召力的网站,谁会贸然率先支持 HTML5来要求用户升级浏览器吗?这些网站之间必定会陷入囚徒困境中,在重复的囚徒困境中,博弈被反复地进行。最终才会全面进入 HTML5时代。这个 过程或者很短,也可能很长。毕竟现存的Web前端还没到不堪的地步,反倒是由于Flash这些插件和jQuery这些JS框架弄的有声有色。

 总结    

HTML5不是用户应用的迫切需求,更多是厂商试图改变软件生态格局的战略需求。
HTML5的兼容性鉴于各大浏览器的以往表现,有 待观望,不宜立即迁移应用。
HTML5需要一个成熟完整的开发环境,记事本+浏览器对付不了。
HTML5功能的暴增,浏览器必须有一个高 效的图形引擎和脚本引擎。
HTML5需要杀手级应用来吸引和引导用户升级浏览器,最终完成HTML5终端的部署。
 
 
 
 
 
==================================================
 
 

最近,我想IT领域最为火爆的一个词汇就是:HTML5了。随着Google Wave揭开面纱,FireFox 3.5、Opear 10、Chrome相继支持HTML5特性后,本来就不是一个新词汇的HTML5突然之间进入到了更多人的视线里面,本应是一个利好的事情,毕竟HTML5的出现会给Web带来很多新的“生机”与“活力”。
然而,不知道从什么时候开始,HTML5竟然被描述成了“Flash杀手”、“ RIA杀手”等“血淋淋”的词汇。关于HTML5能否可以取代Flash、取代RIA?网络上几乎是各抒己见,百花齐放。

本篇文章也是叙述HTML5RIA之间的事情,但是本篇文章是从他们之间的从属关系进行的叙述,而没有从技术等角度来描述。

okay,首先第一个阐述的观点,既然HTML5RIA、Flash、Silverlight杀手,那么所谓“杀手”指的是什么呢?
即“杀手”的含义:
HTML5可以代替Flash、Silverlight、JavaFX等技术。甚至于“消灭”掉RIA这个词汇。
那么既然说到了RIA,让我们先了解一下RIA的定义:
网络上关于RIA的定义有很多,我就不在这里叙述了,定义请看:这里

目前来说RIA范畴的主流解决方案大致如下几个:
1、  FlashAdobe公司)
2、  Silverlight(Microsoft公司)
3、  JavaFX(Oracle公司)
4、  Ajax(以JavaScript驱动)

不过无论哪种RIA解决方案,他们有一个共同点。都是需要下载一个runtime,然后相当于浏览器插件形式存在的。(Ajax除外)
也就是说:HTML5与RIA之前的关系是:平台与插件。无论是哪个RIA技术都会包容在HTML里面。(Ajax技术亦是如此)
也就是说:之前他们的关系是“和平相处”的情况。

HTML5在某些人的描述中,突然之间变成了RIA的杀手、Flash杀手、Silverlight杀手...
那么持这些论调的人所拥有的观点是什么?
我觉得大致有以下几个特征:(我只是列举了几个特征而已)
<video>标签:
利用HTML5这个新标签可以直接在HTML上面播放视频、例如ogg、mp4格式。
<canvas>标签:
利用HTML5这个新标签可以直接在HTML上面显示2D图形。例如圆形、长方形、正方形等。
HTML5离线处理:
在Google Gears、Adobe AIR大行其道的今天,如果以后HTML原生的支持离线标准,并且制定了相应的标准,那么肯定会对Google Gears、Adobe AIR产生重大的影响。

通过上面的几个HTML5的特性的确不能难看出:
一个具有2D绘图能力,同时也可以自行执行多媒体技术、并且拥有离线处理技术的新产品,那么它的确是有RIA特性的产物。更“可怕”的是,它还是RIA技术的平台、载体。

但是我想说的是:
1、  Flash早在Flash 1版本的时候就已经支持了2D绘图。同时Silverlight、JavaFX也都在他们的第一个版本中支持了2D绘图。
2、  Video/audio的支持的确是一大进步,不过目前主流的流媒体技术仍旧是Adobe公司的FLV,同时FLV占据了90%的份额,那么ogg、mp4能否成为主流格式呢?如果不成为主流的话,<video><audio>标签能否有受众?(当然Youtube支持一个HTML5的访问链接)
3、  离线标准的制定:这个地方的确是看起来很美,但是前有Google Gears、Adobe AIR,后有Silverlight 3.0版本的加入。而且无论是哪种方案,目前都有大批量的程序作为依靠。

上面是我说的HTML5其中一部分“引以自豪”的功能。那么我再说说下面的一些问题:
1、  HTML5的制定需要在2022年才能正式发布,就是说这部分相当充裕的时间,就足以让Flash、Silverlight、JavaFX等做他们想做的事情了。
2、  浏览器的兼容性,虽然现在可以使用一些非常规手段,例如识别未知元素等方式,让HTML5向下兼容浏览器,但是大家一定要注意,虽然可以识别,但是仍旧无法使用HTML5的特性。而Flash、SilverlightJavaFX,如果出现了上述的情况,那么只需要下载对应高版本的runtime即可,这也是插件方式的有点。
3、  又是浏览器的兼容性,无论Chrome、FireFox、Safari里面JS执行速度如何的快,目前IE(6、7、8)系列还是占据主要市场的。而浏览器直接的JS等的不兼容性,也会给HTML5的推广带来很多不利的因素。

通过上述的一些反例足可以说明,HTML5会真的“看起来”很美?我想不是的,那么HTML5可以为我们带来什么?
首先一个先决条件:HTMLRIA一直都是“平台与插件”之间的关系。

然后我举一个“貌似”恰当的例子来说明:
例如:windows XP,如果想要具有类似Vista Aero效果,那么需要下载第三方工具:windowsblind来模拟实现,最终是可以实现Aero效果,那么效率方面也不如在Vista原生的支持好。同样,在Vista已经原生的支持了Aero效果,那么windowsblind也有相对于Vista的版本,而这个版本可以支持更多的效果。

上面的例子不是很贴切,但是我想可以说明一个事情。
如果HTML5可以原生的支持视频、2D图形、离线浏览等功能,是不是可以这么说:
Flash、Silverlight、JavaFX可以通过这些特性做更多的事情呢?或者Flash、Silverlight、JavaFX可以更专注于某些HTML无法实现的功能,同时HTML5也会给RIA带来更强大的平台。

下面是一个HTML5的特性展示:
http://people.mozilla.com/~prouget/demos/DynamicContentInjection/play.xhtml(以上链接需要FireFox 3.5打开(即支持HTML5的浏览器))

如果看不了的话,请看video:
http://standblog.org/blog/post/2009/04/15/Making-video-a-first-class-citizen-of-the-Web

通过这个demo可以得知,我们在HTML5上面的内容可以通过“某些手段”显示在video上面。这就是一个比较典型的互动,那么如果让HTML与Flash进行配合,是不是可以做出真实的产品介绍等内容呢?

再比如一个例子:
在Google Wave中,我们可以利用HTML5的将桌面上面的内容直接拖拽到浏览器里面,如果这个特性放到Flash里面,即将桌面上面的内容直接拖拽到Flash里面,然后再进行处理(例如图片处理等方式),当处理完毕后,还可以再保存到桌面上。这样的方式,我想如果没有HTML5的支持是无法实现的。

所以我认为HTML5不仅不是RIA杀手,而且还是RIA新的强大的实施平台。当HTML5搭载RIA后,RIA将会变得更加的强大。同时RIA也会相应的放弃一些不必要的功能。

那么HTML5到底是谁的“杀手”呢?
我个人觉得HTML5联合RIA技术因而面对的真正对手:传统的C/S类型的软件

当然了上面的观点是我的猜想,原因也很简单:
1、  HTML5 + RIA将变得很强大,强大到将web的内容渗透到操作系统上面。
2、  背后还可以有云计算的支持。
3、  HTML5 + RIA无疑可以慢慢模糊浏览器与操作系统之间的界限,即模糊B/S软件与C/S软件之间的差别。
4、  HTML5RIA无论哪个概念都属于web领域,因此HTML5的加入可以助力Web领域的发展。

同时,上述任意一点无疑都是对传统软件的冲击,也就是说:Web产品对桌面产品的冲击和挑战将会随着HTML5的到来而越演越烈!
再猜测继续猜测一下,Web下一个对手将是OS(操作系统),而Web的“战将”则是HTML5RIA、云计算等技术。

因此本文的真正题目是:HTML5 + RIA“大战”桌面软件:)
 

Flash是一个不断在 发展的技术,有很强的灵活性,HTML5不可能完全取代Flash,众多的开发人员也不会断然抛弃Flash。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息