我真的不是唱反调——Flash不会因HTML5而死
Flash又出事了。
就在离上次Adobe宣布已经更新Flash Player版本,从而修复未公开漏洞仅过去一周时间,昨天Adobe又发布公告称发现新的“路过式下载攻击”漏洞,该漏洞涉及到Mac及Windows平台,能够被用来发动针对运行于Windows 8.1及以下版本、基于IE和Firefox浏览器的Flash播放器系统,导致自动下载程序的问题。
相信你我,都已经数不清在Flash的历史长河中,这到底是它第多少个漏洞了。而在不少媒体眼中,这个问题更加残酷——就在Flash已经日渐式微的当下,它还是一次又一次的“晚节不保”。
恶意软件作者们热衷于利用Flash漏洞的原因无他,就在于它是一个装机量巨大的跨平台插件,通过它所能攻击的目标不限于一个操作系统、一个浏览器甚至一种类型的用户,通常能快速的创造更大的破坏性和影响力,这也曾经是Flash辉煌的基础之一,因为它只要一份代码,就能在几乎是全部平台所运行。
宣告Flash走向衰落的节点一共有两个,一个来自苹果,一个来自东家Adobe。还记得2010年乔布斯向Flash宣战吗?乔布斯曾以Flash在开放性、完整的Web、电池续航时间、性能等方面的不足为由,一直拒绝让Flash登陆iOS设备。而开发者们为了争抢急速增长的 iPhone用户,也被迫放弃了Flash平台。
然而,即便谷歌在这边鼓吹支持Flash的Android系统多么优秀,但似乎就连Adobe自己都想要放弃Flash了,该公司在2012年的Google I/O大会上称未来不但不会在Android 4.1平台上支持Flash,而且已经完全停止这个软件平台上的所有开发工作。
此后,如你所见,Adobe公司只对Flash进行过一次又一次的修补更新,而它走向日薄西山,似乎也已经是事实。
但Flash真的要灭亡了吗?
这个问题其实不然,无论是歌颂乔布斯早有远见,还是以Adobe不再为移动设备浏览器提供Flash Player插件支持为理论依据来唱衰Flash,都有个很明显的概念问题——因为Flash 的内容载体早已经不只是FlashPlayer一个,但在大部分人心目中,这两者还是被划为等号的,这显然是有巨大错误的。
Flash实际上是一个很宽泛的概念,你可以将其理解为是一个平台,这个平台由一系列基于Flash技术的元素构成,包括:
·运行时的Flash Player、AIR;
·语言:AS、MXML;
·IDE: Flash Builder、Flash Professnal、Flash Develop、FDT等;
·框架:Flex等;
·周边技术:Alchemy等;
而真正的事实是,在移动设备上,即使没有了FlashPlayer,Flash内容依然能够通过AIR跨平台技术(原理为将Flash应用直接发布为支持iOS和Android的原生App),从而进入到用户的设备中去,而后者也是Adobe对Flash投入的重点之一。而且在移动设备上,App仍然占据主导,Flash内容进入移动设备的通道还是很通畅的。因此,将FlashPlayer在移动设备上的绝缘,解读为是Flash在移动设备的绝缘,是有本质性错误的。
而即便是在PC上,Flash 也仍然占据统治地位,Flash11开始提供的GPU硬加速“Stage3D”技术的引入,不仅可以使 GPU硬件加速的能力大大加强,还能够更省电和高效运行,这一点,看看现在大热的页游有多少是基于Flash技术开发,其中又有多少款页游的3D效果已经能够媲美传统网游,就可见一斑。
大热的html5,就是未来吗?
让众多人士确信Flash将死的一点,还由于他们相信自己找到了能够取而代之的明天,那就是HTML5,但实际上,它们二者本不应该放在一起比较。
如果要形象点区分的话,那么Flash可以被理解为App,而HTML5则是Web,这二者都有可能成为未来,但现在谁都不好说。
而且,部分人对于HTML5的认知还有点误差, HTML5是一个开放的标准,而Flash是Adobe公司的。也就是说,你可以理解为是Flash是iOS,而HTML5是Android。乔布斯当年力挺HTML5,根本性的原因还是因为Flash的控制权在Adobe手里,而不是苹果,这显然是无法被其容忍的,同样的,谷歌、微软对HTML5的支持也基于此,后者曾经还自己弄过一个Silverlight,但是失败了——因此,即便是现在,你也不该过多解读微软、苹果这样的巨头支持HTML5的意义,因为就和当年IBM大力推广Linux,希望能削弱Windows是一样的道理,毕竟它们都是商业公司。
而作为一个标准,“HTML5”其实是一个语义化的标签语言,具体包含着HTML5(显示元素)+CSS3(排版元素)+Javascript(执行语言)三个元素。这其中,HTML5的显示元素和执行语言与Flash相比都不占优势,后者的AS3在图和3D编程上要领先Javascript一大截,而且JavaScript的调试也很麻烦,相比之下,Flash的Flex所集成的开发环境则拥有更加完善的编译、调试和运行机制。
此外,还有一项被认为是HTML5将取代Flash的证据,就是许多视频网站已经开始拥抱了HTML5,但很可惜,HTML5目前还相对缺乏一套完整的服务器端到客户端的机制——总的来说,即便是早几年的Flash 版本也在某些方面仍旧领先着HTML5,后者目前仍有大部分Web端的优秀设计只能够在桌面电脑上实现。而且,HTML5也并非一直是个神话,Facebook和游戏厂商EPIC都接连证明过HTML5在WebGame方面也并无优势。
不过,HTML5的兴起也有其固有的原因,其更贴近移动互联网的特点也给其未来发展有很大底气,但纵观多年HTML和Flash的发展路线来看,其实两者都不具备完全取代对方的能力,未来两者的协作和结合才是最理性的选择,目前已有很多优秀的网站或应用,都选择了融合两者的道路。而且从上述几个例子中我们也不难看出,在评判技术优劣的同时,我们也应该兼顾到除了技术本身之外,大企业的支持度、现有市场份额等因素也将影响着最终的结果。