Skip to main content

Flash终于走向死亡!Flash的兴衰之路你知多少

发信人: xxxiong(灰尘), 信区: Working
标题: Flash终于走向死亡!Flash的兴衰之路你知多少
发信站: BBS未名空间站(Fri Jul 28 11:16:25 2017,GMT)

  作为最大名鼎鼎的网络多媒体技术之一,Flash的名号可谓是无人不知无人不晓。
然而,触手曾伸及形形色色网站的Flash,现在终于要退出历史的舞台。Adobe已经宣布
,Flash将会在2020年停止开发和更新,这意味着Flash已经彻底走向淘汰。盛极一时的
Flash,是如何被人抛弃的?明明是Flash先来的,玩小游戏也好,看视频也好,实现各
种复杂的交互也好,但为什么Flash会被HTML5取而代之?今天,就一起来谈谈关于
Flash的话题吧。

  Flash:曾是互联网世界的超级英雄

  Flash在今天给人的印象是臃肿而又低效的,但在Flash刚刚诞生的时候,却被视作
是互联网世界的超级英雄。Flash诞生自1996年,当时的Flash可是网络上冉冉升起的超
新星——小巧、高效、跨平台,无论是开发者还是用户,看到Flash都会笑逐颜开。

  在上世纪末本世纪初,互联网的世界是单调的。别看现在的网页和浏览器干啥都行
,但在Web1.0的年代,HTML平台能做的事情极其有限——网页多只是简陋的文字排版,
图片往往是马赛克级别的分辨率,能动起来的GIF图片,动不动数M的体积,对于当时流
行的拨号上网来说,可谓是一图杀猫的存在。此情此景下,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被视作是理所当然的
事情。看看那些即便乖乖给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
,能解码编码H.264,能进行3D渲染,能播放7.1声道环绕声,能支持游戏手柄……林林
总总的功能集于一身,加上易于开发,粗劣低效的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并不符合互联网的开放精神,起码就不如大家一
起来运营的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,给用户带来更好
的体验吧。 

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...