话说Flash有过极为辉煌的时代,当Adobe于2005年收购Flash时,这项技术被应用于98%的个人电脑上。但另一方面,Flash也的确由于技术问题和跟不上时代潮流而逐渐衰颓。Adobe已经宣布,Flash将会在2020年停止开发和更新,这意味着Flash已经彻底走向淘汰。现在已经2019年年末了,如此看来,自己作为现存不多的Flash Player开发的程序员,送送Flash还是蛮光荣的历史任务了。这篇《Flash由兴盛走向衰亡 跟不上时代注定被抛弃 一路走来你知多少》把Flash的故事讲得很详细很透彻,直接搬过来吧。
作为最大名鼎鼎的网络多媒体技术之一,Flash的名号可谓是无人不知无人不晓。然而,触手曾伸及形形色色网站的Flash,现在终于要退出历史的舞台。盛极一时的Flash,是如何被人抛弃的?明明是Flash先来的,玩小游戏也好,看视频也好,实现各种复杂的交互也好,但为什么Flash会被HTML5取而代之?今天,就一起来谈谈关于Flash的话题吧。
看到Flash这个词,莫名会产生一种年代感,脑中会浮现出诸般动画模式。尽管Flash如今依然存在,但也不剩多少时间了。据BBC消息,Adobe Systems公司表示,会在2020年底逐步淘汰Flash播放器插件。
说到此处,不免有几分凄凉之感。记得Flash当初兴起之时,是极为风光的。尤其是从新世纪之初到2008年,属发展的黄金阶段。PC时代,Flash动画在互联网中着实火爆。然而,随着移动端时代到来,H5崛起,Flash走向没落。苹果、微软等巨头皆明确表示过不接受Flash插件在产品中登陆。
Flash当初为何兴起?为何衰落?又为何遭遇移动设备厂商的“嫌弃”?分析Flash从兴起到衰退的过程,能够对这些问题有更加深切的解读,能够窥见移动端时代Flash不能适应的原因,并可能对类似的功能和插件起到一些参考作用。
Flash:曾是互联网世界的超级英雄
Flash在今天给人的印象是臃肿而又低效的,但在Flash刚刚诞生的时候,却被视作是互联网世界的超级英雄。Flash诞生自1996年,当时的Flash可是网络上冉冉升起的超新星——小巧、高效、跨平台,无论是开发者还是用户,看到Flash都会笑逐颜开。
在上世纪末本世纪初,互联网的世界是单调的。别看现在的网页和浏览器干啥都行,但在Web1.0的年代,HTML平台能做的事情极其有限——网页多只是简陋的文字排版,图片往往是马赛克级别的分辨率,能动起来的GIF图片,动不动数M的体积,对于当时流行的拨号上网来说,可谓是一图杀猫的存在。此情此景下,Flash俨然成为了令人啧啧称奇的魔法。
Flash是二维动画软件、交互矢量图与Web动画标准。网页设计者可籍此创造出既优美又能够改变尺寸的导航界面以及动画效果。在PC时代,HTML语言的功能限制度高,达不到人们预期的、使人耳目一新的动态效果。
因此,各类脚本语言应运而生,为的是使网页设计更加多样化。然而,程序设计却总是不能够非常好地得到普及,因为它对使用者的编程能力有一定的要求,故而人们还需要一种简单的、直观的、功能更为强大的动画设计工具,而Flash的出现恰好满足了此需求。
从1999年~2001年,可算得上是Flash插件的培育期,在2001年~2008年期间,可谓Flash的黄金发展期。那么在那段时间中,Flash都经历了什么呢?
2001年左右,互联网上主要的动画表现形式是GIF。若要基于浏览器看视频,必须要装Media Player插件或者Real Player插件等等。在那个PC端还尚未普及的年代,只要是能动起来的东西,管它是动画还是视频,总能吸引人的眼球。
所以,这就给Flash的火爆提供了一个很好的土壤,几百KB或MB的小文件就能有那么精美的画面,而且基于其矢量效果,放大后也不会失真,并且支持边下边播,还能交互着正看重看倒看,并能点个“开始播放”之类的。
所以说,在那个网速以K为单位的年代,Flash堪称业界良心。彼时在互联网中,能流畅播放的、并且能大段的动起来的,也就只有Flash了。这很难不吸引用户的注意力,也涌现出不少Flash爆款动画,如大话三国、火柴人格斗、东北人都是活雷锋等诸多MV二次制作。可以说,在当时的背景之下,Flash的火爆是必然的。
Flash缔造过很多经典小游戏,例如火柴人
单调的网页一旦使用了Flash,面貌往往会焕然一新。Flash能够用仅仅十几K到几百K的体积,呈现出放大也不会失真的矢量彩色动图,甚至还能够做出足以令人沉迷一整天的Flash小游戏。Flash一度成为了互联网中最耀目的多媒体技术,是否使用了Flash,甚至成为了人们来衡量一个网站先进与否的标准。
Flash的大展拳脚,离不开它的准确定位——HTML平台不行,那Flash自己就来做平台。Flash用插件的身份,干着平台才需要负担的繁重工作。在Adobe丰盈的奶水的滋润下,Flash茁壮成长。Flash先后加入了对Javascrip、HTML、XML的支持,新增了滤镜和层的模式,加持了AcTIonscript语言,并增强了影音方面的功能一举把RM/RMVB赶到了线下。加上Flash跨平台的特性,极其容易移植,因此Flash很快就在互联网上打出了一片天地。
Flash在互联网中曾经的盛况都是有目共睹的,便不再赘述,单从Flash走下坡路之时开始说起。2004年,Flash Player 7开始将视频单独作为文件格式提出,即为著名的FLV格式。
此格式甫一出现,即引爆流媒体视频行业,彼时Flash播放器装机率已然超过95%。此后,Adobe一直改善FLV格式,视频编码从Sorenson Spark到On VP6再到H.264,音频编码则从MP3到AAC,格式从FLV到MP4……此种修改使得FLV这种小众的视频格式成为主流。
此后,各类视频网站逐步兴起,并且网络带宽飞速发展。在这种背景下,Flash MV逐渐被人所遗忘。
Flash的支持一度相当广泛
Flash最为鼎盛的时候,市面上稍微高端点的设备,支持Flash被视作是理所当然的事情。看看那些即便乖乖给Adobe授权费也要抱住Flash大腿的设备吧——黑莓、PS3、PSP、Wii、PocketPC、Windows Mobile、塞班……哪个不是一方英雄,哪个不是一时豪杰?但是,这些大佬们也不得不对Flash敬重三分。不过,终于还是出现了对Flash说“不”的人——苹果。
Flash为何走向淘汰?
随着iPhone的流行,Flash在移动市场迅速衰退。2007年出现的iPhone一开始就不支持Flash,当时正值Flash的顶峰。很多人起初对苹果这一决定嗤之以鼻,但最后发觉原来增加续航的最好方法不是增大电池,而是抛弃Flash。于是,Android也在2012年宣布不再支持Flash,Flash在移动市场不再有立足之地。
Flash在移动平台的衰败最后波及到了桌面市场。Chrome从去年的Chrome 42开始,就已经强制把Flash装入沙箱,以PPAPI的形式运行;在今年推出的Chrome 55中,更是默认禁止Flash运行。Chrome的前辈Firefox更加激进,去年就已经默认禁止Flash运行了。微软的Edge浏览器是对Flash支持得比较好的,但也宣布将会在Win10 RS2新版中默认禁止Flash。1996年诞生的Flash用了10年攀上顶峰,然后走了10年下坡路;3年后的2020年,Flash将会走到生命的终点。
很多浏览器都已经默认禁用Flash,或者是旧版Flash
上文提到,Flash以插件的身份,做着平台该做的事情,功能非常强大。为何如此强大、如此流行的Flash会走向衰落?原因大致如下。
首先,Flash效率变低了。随着功能的增多,Flash的效率明显变低。现在的Flash,能解码编码H.264,能进行3D渲染,能播放7.1声道环绕声,能支持游戏手柄……林林总总的功能集于一身,加上易于开发,粗劣低效的Flash不断在网络泛滥。
Flash已经变得太过臃肿低效
Flash的功能越来越强大,开发人员使用Flash开发的产品也愈发繁多庞杂,Flash开始被用来干一些奇怪的事情,比如说卖卖小广告啦,玩玩小游戏啦——这些应用多是粗制滥造,很难想象有人会为Flash广告优化代码,是吧。人们慢慢发现,当低劣的Flash充斥着网页的时候,电脑开始不堪重负了,Flash落下了一个烤肉机驱动程序的称号。
毫无疑问,贴满了低效Flash的页面是非常不适合移动互联网的,没有什么设备的电量能经受住Flash的拷问,这令Flash迅速被移动平台所摒弃。自然而然,Flash也就淡出了这个移动为王的时代。
其次,Flash非常不安全。Flash以一个插件的身份,干着平台干的事情,所导致的后果就是承受了平台级别的风险。君不见多少个0Day漏洞自Flash而出,例如在2015年,安全机构NTT Group公布的十大最危险的漏洞就全部出自Flash。Flash能够运行相当复杂的代码,这让Flash非常容易被渗透。加上Adobe在安全方面的不上心,这令Flash安全问题频发。
Flash支持多个平台,这令它带来的安全问题影响更加严重。一旦Flash出现安全问题,N种浏览器、操作系统都有可能被攻陷。在移动互联网时代,设备承担了越来越多的隐私数据,没人希望隐私从满是漏洞的Flash中泄漏出去。因此,Flash遭到了冷落。
再者,Flash很不稳定。作为一个插件,它自身频频崩溃也就罢了,还经常拉着浏览器乃至操作系统一起殉情。光是播放视频,Flash就能给你弄出蓝屏事件,往往不得不关闭Flash的硬件加速提升稳定性。
最后,Flash已经有了替代品——HTML5。Flash之所以得以流行,是因为当时的网页实现不了什么功能,需要Flash这样的插件充当救火队员。现在,HTML5已经基本上能包办Flash所有能干的事情了。无论是视频播放,还是小游戏,使用HTML5都可以轻松实现。同时,HTML5对比Flash的效率更高,安全性更好,不需要另外安装插件也可以在各大平台运行,对不同设备的支持要比Flash更加友好。
在移动端时代,巨头们“嫌弃”Flash的原因,需要从多角度加以分析。
第一,商业利益。
作为企业,最为直接的目的便是盈利,乔布斯深知这一点。在iOS中,数量最为庞大的应用便是游戏。而用Flash开发游戏既便捷又迅速,效果还好,其开发效率远超XCode。不过从另一方面来看,如果Flash流行,用户就能通过网页直接进行访问,那么移动设备的应用商店就不好赚钱了。
移动设备系统小巧,且封闭性较强,因而厂商通过清理门户获得控制力的举动无可避免。实际上,原生态的计算机设备系统都形成了闭环,如任天堂的FC、Wii,索尼PS系列、XBOX系列,全球范围内第一台个人电脑Apple,无一不是封闭系统,iOS和WP应用商店也只是借鉴了此种模式。
第二,用户体验。
在PC时代,许多人安装软件都从网页中搜索,不过也有许多人习惯通过各种软件管家进行安装。而在移动端时代,闭环系统中在应用商店安装软件更加方便。因此,Flash并非主流,所以用户不会在体验上有太大的差别。而且应用商店中资源更为丰富,用户不会对此太过在意。
第三,巨头暗战。
微软在早期IE中内置了Flash,不过后来就消失了。微软自己想做插件,但国外的专利和版权法非常严苛,一般不会抄袭,所以这样一来山寨的就比不上原创的了。而到了移动端时代,微软也借鉴了苹果的做法,光明正大地封杀了Flash。
第四,Flash的地位。
需要承认的是,Flash是世界上最方便的动画工具、矢量工具、结合矢量位图动画的编程工具。然而Flash却从未成为过现象级工具,在专业领域,有大量的产品可以替代Flash。相对而言,Flash虽然高效,但却更为大众化。而大批低效但更专业的工具才是动画片制作、游戏开发、图形设计等领域中的主流。
其实,Flash就如同调节剂,可以撑得住小场面,但在更专业的工具面前就败下阵来。何况在移动端时代,我们早就对动画不感冒,而被视频吸引了。
无论怎样,Flash确实已经呈现萧索之态。就连Adobe的产品开发副总裁Govind Balakrishnan也表示:“公司已经选择关闭Flash,因为其他技术(如HTML5)已经足够成熟,足以提供Flash播放器可行的替代品”。不过他同时也说:“在互联网时代,很少有技术能产生如此深远而积极的影响。”
诚然,Flash有过极为辉煌的时代,当Adobe于2005年收购Flash时,这项技术被应用于98%的个人电脑上。但另一方面,Flash也的确由于技术问题和跟不上时代潮流而逐渐衰颓。以发展的眼光来看,Flash被淘汰也是必然会出现的结果。
连Flash的亲爸爸Adobe都力顶HTML5,在Animate CC中加入HTML5支持了
另外,作为一款商业软件,Flash并不符合互联网的开放精神,起码就不如大家一起来运营的HTML5来得符合。在之前,HTML5标准的制定一片混乱,WHATWG和W3C为了争夺HTML5标准的话语权,内斗不已。现在一切尘埃落定,HTML5标准已经出炉,业界再也没有什么理由观望而不跟进。甚至Adobe也宣布,Flash的开发工具Flash Builder更名为Adobe Animate CC,加入对HTML5的支持。爸爸都不爱你了,Flash还是乖乖睡进历史书吧。
总结
简而言之,Flash的兴起和衰落,不仅仅是因为本身的堕落,还要考虑历史的进程。历史的进程已经钦点了HTML5做接班人,你问我支不支持HTML5?反正业界都支持,微软、苹果、Google乃至Adobe都在力推HTML5。Flash被彻底淘汰的2020年并不远,但目前国内仍有不少视频站使用Flash,希望国内视频站能尽快转用HTML5,给用户带来更好的体验吧。