Flash 终于走向死亡!Flash 的兴衰之路

Stella981
• 阅读 623

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

Flash 终于走向死亡!Flash 的兴衰之路 Flash将在2020年被彻底淘汰

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

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

在上世纪末本世纪初,互联网的世界是单调的。别看现在的网页和浏览器干啥都行,但在Web1.0的年代,HTML平台能做的事情极其有限——网页多只是简陋的文字排版,图片往往是马赛克级别的分辨率,能动起来的GIF图片,动不动数M的体积,对于当时流行的拨号上网来说,可谓是一图杀猫的存在。此情此景下,Flash俨然成为了令人啧啧称奇的魔法。

Flash 终于走向死亡!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 的兴衰之路

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效率变低了。随着功能的增多,Flash的效率明显变低。现在的Flash,能解码编码H.264,能进行3D渲染,能播放7.1声道环绕声,能支持游戏手柄……林林总总的功能集于一身,加上易于开发,粗劣低效的Flash不断在网络泛滥。

Flash 终于走向死亡!Flash 的兴衰之路 Flash已经变得太过臃肿低效

Flash的功能越来越强大,开发人员使用Flash开发的产品也愈发繁多庞杂,Flash开始被用来干一些奇怪的事情,比如说卖卖小广告啦,玩玩小游戏啦——这些应用多是粗制滥造,很难想象有人会为Flash广告优化代码,是吧。人们慢慢发现,当低劣的Flash充斥着网页的时候,电脑开始不堪重负了,Flash落下了一个烤肉机驱动程序的称号。

毫无疑问,贴满了低效Flash的页面是非常不适合移动互联网的,没有什么设备的电量能经受住Flash的拷问,这令Flash迅速被移动平台所摒弃。自然而然,Flash也就淡出了这个移动为王的时代。

其次,Flash非常不安全。Flash以一个插件的身份,干着平台干的事情,所导致的后果就是承受了平台级别的风险。君不见多少个0Day漏洞自Flash而出,例如在2015年,安全机构NTT Group公布的十大最危险的漏洞就全部出自Flash。Flash能够运行相当复杂的代码,这让Flash非常容易被渗透。加上Adobe在安全方面的不上心,这令Flash安全问题频发。

这是NTT Group在2015年公布的各大软件漏洞情况,可见Flash一览众山小

Flash支持多个平台,这令它带来的安全问题影响更加严重。一旦Flash出现安全问题,N种浏览器、操作系统都有可能被攻陷。在移动互联网时代,设备承担了越来越多的隐私数据,没人希望隐私从满是漏洞的Flash中泄漏出去。因此,Flash遭到了冷落。

再者,Flash很不稳定。作为一个插件,它自身频频崩溃也就罢了,还经常拉着浏览器乃至操作系统一起殉情。光是播放视频,Flash就能给你弄出蓝屏事件,往往不得不关闭Flash的硬件加速提升稳定性。

最后,Flash已经有了替代品——HTML5。Flash之所以得以流行,是因为当时的网页实现不了什么功能,需要Flash这样的插件充当救火队员。现在,HTML5已经基本上能包办Flash所有能干的事情了。无论是视频播放,还是小游戏,使用HTML5都可以轻松实现。同时,HTML5对比Flash的效率更高,安全性更好,不需要另外安装插件也可以在各大平台运行,对不同设备的支持要比Flash更加友好。

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,给用户带来更好的体验吧。

Flash 终于走向死亡!Flash 的兴衰之路

点击“阅读全文”了解多专业课程

 

本文分享自微信公众号 - 前端研究所(WEBqdyjs)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Souleigh ✨ Souleigh ✨
4年前
Flash 终将谢幕:微软将于年底停止对 Flash 的支持
近日,微软宣布将于今年12月终止对AdobeFlashPlayer的支持,届时,微软旗下所有浏览器都将无法使用Flash,Adobe也不会在今年12月后发布安全更新。早在2017年,Adobe、Apple、Facebook、Google和Mozilla就已经宣布将于2020年12月停止对Flash的支持。微软将于
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这