主流浏览器彻底放弃 Flash Flash已没有未来

Flash,它虽然是一个上世代的技术,但是就国内的情况来说,还在使用 Flash 作为上传控件、作为富文本编辑器的网站其实并不在少数,特别是在各种各样的内部系统里。

这些系统有的是一直沿用下来,没有跟随技术的升级进行更新迭代的,也有的是较新的系统,但是开发商技术栈没有更新,使得系统里还有用到一些 Flash 控件。

这一现象在教育领域非常常见,很多教育领域的老资源、老站点都有用到 Flash,在 PPT 内嵌入 Flash、在各种在线教学页面嵌入 Flash 是很司空见惯的事情。
由于制作这些资源的人本身也不是什么专业的技术人员,就是普通的一线教师,Flash 在制作动画上门槛要比很多新技术低很多,所以哪怕是一些较新的资源,它也有可能会有用到 Flash。
教育领域因为其各种内容、资源可以在一个很长的时间跨度内通用,所以教育领域,尤其是基础教育这一块,其实它的技术迭代是要比其他领域、其他行业更慢一些的。同理,一些工业领域也是如此。

除此之外,很多小游戏网站的大部分内容也仍然还是基于 Flash 的,直到现在,小游戏站点也仍然还在大规模地应用 Flash。
由于当下页游的热度早已经大不如前,且 H5 游戏开发成本相较于 Flash 更高,难度相对更大,随着时间的推移,小游戏就像被永久定格在了 10 年前一样,像 4399 这样的站点,基于新技术打造的新内容占比少得可怜,在首页上,大量的小游戏还仍然是 10 年前甚至更老的内容。
可就像之前很多人还留恋 Windows 7 一样,作为一款已经不属于这个时代的技术产品,Flash 已经走到了它生命的尽头。Adobe 在很久之前就已经宣布不再给 Flash 提供后续支持,除了给 Flash 打上一些关键的安全补丁外,Flash 已经很长时间都没有再得到过任何的功能更新。

Adobe 宣布放弃 Flash 已经是大约三年前的事情了,当时他们宣布将在 2020 年正式停止对 Flash 的更新,而在更早的时间,大约是 2011 年,Flash 其实就已经败下阵来。

当时因为移动端对 HTML5 的大力支持,以及苹果等公司给了 HTML5 这项技术非常强劲的支持,在移动端这一块在当时还算是新兴的开发领域,由于 Flash 在当时确实也对移动设备不够友好,从开发到呈现各方面,它和 HTML5 相比确实也具有一定劣势,导致后面站在 HTML5 这边的开发者数量越来越多。
随着时间的推移,Flash 在移动端难以生根,而 HTML5 借着移动互联网的东风蓬勃发展,因为看见 Flash 基本上没什么希望进入移动端的开发生态,Adobe 也是及时止损,很早就放弃了在移动端力推 Flash 的想法。
在 PC 端,原本结合 Adobe Air 等平台,Flash 本身其实也有一定的发展前景,但由于移动端已经坚定的站在了 HTML5 这边,而 HTML5 本身又是一个移动端、桌面端都通用的技术,以至于在移动端失利后,在 PC 端,Flash 也失去了其发展前景,Adobe 也不愿投入更多去对 Flash 的开发工具链和底层进行技术层面的迭代升级。

最终,如你我所见,Flash 总体走向下坡,最后被 Adobe 正式放弃。到现在,Flash 已经基本上成为了 Adobe 的一个纯粹的商业工具,他们甚至针对中国地区推出了「特供版」,这一举动说明 Flash 对于 Adobe 也不再有什么价值,Adobe 也是能捞一笔算一笔了。

在被 Adobe 放弃之后,出于 Flash 在各个地方十分广泛的应用,主流浏览器普遍还保持了对 Flash 的支持,但是由于 Flash 潜在的安全问题,相关的插件在浏览器中默认都不被弃用,但是如果你想查看 Flash 内容,那么你还是可以查看到的。
但是很显然的是,假如浏览器一直都对 Flash 提供兼容支持的话,不但这些浏览器的开发团队要一直维护这个古老的 Flash 组件,承担 Flash 可能带来的一些安全风险,在这种兼容性的存在下,技术也很难得到向前的发展,很多人可能还是会因为这个兼容性停留在 Flash 上,不会向前走。

其实这和 Windows 系统的升级有几分相似,很多朋友就是想停留在 Windows XP、Windows 7,他们认为这些旧版本的系统用着称手,如果微软不停止更新,或者强制某些新功能能够在 Windows 10 上使用的话,可能会有大量的用户仍然停留在 Windows 7 等系统上,不选择升级。
不论是 Windows 还是 Flash,当用户不向前走的时候,首先相关的产品会不可避免地受到一定的负面影响,其次是整个行业。

Flash 如果一直存在,由于 Adobe 已经不再提供更新,长期这样下去它必然会成为一个问题,作为一个在技术层面已经过时的产品,新技术反而要照顾这个旧技术在安全、兼容等各方面的问题,其中安全的问题是最重要的,因为程序本身还是人写的,它还是可能会出现一定的纰漏,就像 Intel 处理器的那些漏洞,和最近的雷电 3 漏洞一样。
没有人能够充分保证 Flash 未来不会出现危险性很大的安全漏洞,即使所有用户里只有不到 5% 的用户还在使用 Flash,但考虑到用户基数的庞大,这也是一个很大的数字。在没有 Adobe 后续支持的情况下,这种安全漏洞对用户来说往往是十分致命的,这也是为什么微软在停止了对老旧系统的支持后,还是会针对一些特别严重的漏洞推出补丁。
除此之外,对于浏览器来说,即使 Flash 相关的组件被用到的概率很低,它们也要一直集成在浏览器内核里,浪费空间,增加浏览器内核的复杂度。对于本身就已经很庞大的浏览器内核来说,及时剥离过时的内容是很有必要的。

Chrome 将跟随 Adobe 停止支持的时间,在 2020 年 12 月正式停止对 Flash 的支持,届时即使用户想启用 Flash 内容,也会遭到 Chrome 的拒绝,因为相关的支持已经被停止了,Flash 内容将再也不能显示在页面上。
在今年年初,本身就比较抗拒 Flash 的苹果是已经放弃了对 Flash 的支持,拥抱更先进、更可控、更安全的技术。出于这两家浏览器的市场份额,其实这已经宣告了 Flash 的死亡。但是高市场份额份额做出的决定并不能代表整个行业的决定,要彻底宣告 Flash 的死亡,需要行业做出一致的动作。
微软已经通过拥抱 Chromium 对 Flash 进行了淘汰,后续 IE、Edge 也会移除对 Flash 的支持,最后只剩下火狐一下还没有公布具体的淘汰时间。
近期,火狐也正式宣布他们会同样在今年的 12 月正式停止对 Flash 的支持,面向开发者提供的开发版本会在更早的时间就停止对 Flash 的支持。
这个消息的出现可以被看作是行业主流对 Flash 死亡的最终宣告,因为 Chromium + Safari + Firefox 足以代表整个行业。

对于开发者来说,其实大部分开发者是不需要担心这件事情的,现有的老旧系统其实有的其实也不会做升级,因为虽然新的浏览器不兼容,但是老的浏览器是可以兼容的,就像很多旧系统可能会要求用户使用 IE 那样,很多系统可能会采取这样的变通方法来实现寿命的延长。

而很多需要更新的系统,其实在最近这一年里,它们已经基本上实现了更新,也没有太多需要针对这一改变而特别做的事情。
这个变化对于普通用户来说影响是最大的,因为内这将直接导致所有的 Flash 内容都不能再在浏览器内使用,如果你常用的网站、系统有使用 Flash,在年底保持更新浏览器可能会对你的生活 / 工作带来一定的影响。为了尽可能减少这样的影响,像 Chrome 其实很早就已经贴出了提示,提前很长时间告知用户他们会停止对 Flash 的支持,以尽可能减少对用户的影响。
使用国产的、基于 Chromium 浏览器的用户倒是可以不那么担心这方面的问题,因为有的浏览器在跟进核心版本上本身就是比较慢的,可能当这个变化真正到来的时候,时间会更晚数月,而且在他们正式砍掉对 Flash 的支持时,他们一定会做醒目的提醒,或者是用某种方式继续实现兼容。

对于 Flash,不得不承认的是,它是一个伟大的存在,它在很长的时间里为 Web 的各种问题提供了很好的解决方案,作为一个编程语言,ActionScript 本身也具备丰富、强大的功能,使得 Flash 能够实现一些类似于游戏这样的东西。
其实在很多新技术里,你仍然可以看到很多 Flash 的影子,像某一些社区内基于 H5 Canvas 的东西,他们背后的开发者就是当年做 Flash 很厉害的那一批人,他们有当年的开发经验和 Flash 的各种架构作为基础,在新的技术架构下,他们才能够又快又好地解决新技术架构下的各种问题。
没有 Flash 作为基础,直接上到 H5 Canvas,可能它的发展会没有这么快、没有这么顺利,Flash 作为曾经的核心技术,它是伟大的。但是出于 Flash 本身的各种问题,它还是避免不了被淘汰的宿命,作为用户也好、作为开发者也好,我们的眼光最终也都还是得向前看,去拥抱更先进的技术。

其实以现在的前端技术来说,H5、WebGL 带来的体验其实已经完全超越了 Flash,比如说 CSS3 动画,它可以秒杀无数很多年前做得很精致的 Flash 页面动画,更别说基于 Canvas、WebGL 实现的内容了。
未来可能会流行起来的 WebAssembly 会带来比 Flash 更高很多的扩展性,带来更多功能上的可能。而 Flash 因为自身技术上的各种局限性,我们最终还是得和它告别。