Flash已死,Deno当立?学术头条2020-05-25以下文章来源于CSDN,作者马超2020将走完一半,主流浏览器留给Flash的时间不多了:早在2017年7月,Flash的娘家Adobe已宣布在2020年底终止对Flash的支持。2019年,微软宣布在2020年底内移除对Flash的支持。
微软表示,自家浏览器移除Flash插件的最后期限是2020年12月前,届时无论是经典版的Edge(Spartan)、还是IE11都将在2020年底告别Flash插件。在这之前,浏览器领域的绝对霸主Chrome已经对Adobe Flash Player插件动手了,近日Chrome已经通过弹窗提醒部分用户,该浏览器对Flash的支持即将结束。
Chrome将于今年12月彻底结束对Adobe Flash Player的支持。目前用户们还可以手动选择启用Adobe Flash Player插件,但支持到期后,Chrome将彻底禁止调用Flash插件。这样看来,Flash距离“寿终正寝”不远了。这项在PC时代立下汗马功劳的互动动画技术,将不可逆转地被Hilo等基于H5的互动前端技术拍倒在岸上了。
近日,Deno 1.0正式发布:Node.js之父Ryan Dahl认为他在设计Node.js时犯一些包括安全性、package.json、node_modules等等一系列的错误,并表示这些Bug问题严重且不可回避,于是他重新设计了Deno脚本语言。
这让我们不禁要问在互联网的前端世界:前浪们是不是太难了?短视频和小游戏的共同始祖,曾经无比辉煌的Flash诞生于1990年代初期,当时,FutureWave推出了一款名为SmartSketch图形软件,它使用触摸笔而不是键盘来操作。
后来,FutureWave又将SmartSketch重新设计成一款能在静态网页上插入动画和视频的工具,取名FutureSplash Animator,它就是Flash的前身。从上世纪90年代末到2006年左右,Flash发展迅速,与目前Python的情况不同,当时的程序员如果不和人聊聊“网页三剑客”,简直出门都不好意思和人打招呼,Flash作为“三剑客”中的绝对C位,风头一时无两。
CSDN.成就一亿技术人说几个暴露年龄的梗,比如2003年一则Flash视频《大学生自习曲》突然红遍整个网络,据不完全统计,在其推出的一月内,其播放量就突破了一亿次。可以说是短视频的始祖。后来如《东北人都是活雷锋》等神曲,也为Flash火爆网络增添动力。Flash还是网页游戏的始祖,如《超级赛车》等经典小游戏,也是基于Flash。
可以说Flash争霸PC时代的一个重要原因是它极大地降低了制作动画的技术门槛,使得创意产业得到了极大的发展,当时各大广告公司将Flash视为非常重要的工具。在2006年之前,Flash一直被认为会是互联网上“永恒的存在”。成败皆插件为何这“永恒的存在”沦为如今主流浏览器放弃的局面?这由于Flash的本质决定:Flash适用于低速互联网的内容,因为它的文件非常小。
Flash通过广泛使用矢量图形做到这一点。与位图图形相比,矢量图形需要的内存和存储空间小很多,因为它们是以数学公式而不是大型数据集来表示的。一般来说,Flash每分钟动画的大小一般不到1M,远比目前的高清视频小得多。由于Flash具备体积小,用户体验却很高的优势,正是Flash在十几年前称霸互联网的不二法门。正是因为放弃使用普通的图片格式而使用知量图形,这使得Flash并不是浏览器原生的。
由于矢量图的渲染,Flash作为浏览器插件的运行效率并不高,访问电脑资源也很不方便,导致很多程序员在开发的过程中出现许多的问题。就算成功发布了一款Flash应用,浏览器也会被Flash插件拖得很慢,电脑会因此变得很卡,所以H5技术出现后,很多人就开始转投到转而开发基于H5的互动技术,开发出了Hilo等新型互动框架。
不过凭心而论,Hilo并不是Flash的终结者,一切都在iPhone开启移动时代后,应用的技术也随之发生改变。Flash错失移动时代2007年,苹果推出了初代iPhone,iPhone的出现给Adobe移动端开发带来了问题:Flash插件运行上的缺点被放大,随着Flash日益臃肿,需要大量计算资源才能支持其动画的渲染。
在手机端,Flash运行需要消耗大量电力,但手机的电池有限,以至于苹果选择不支持Flash。Flash需要重新开发才能适应iPhone,然而Adobe并未能和苹果达成最终的合作协议。这个决定为苹果招来了不少批评,人们认为乔布斯不支持Flash反应了苹果的封闭。
为此,乔布斯在2010年发表了一封公开信,表示“iPad永远不会支持Flash”,并指出了Flash的问题:耗电严重、安全漏洞多,不适合苹果的移动系统。在苹果表态后,YouTube等网站开始采用基于开放标准的免费软件,这些技术既适合桌面端也适合移动端。2014年10月制定的HTML5标准也成为Flash的替代品被广泛使用,网站可在没有插件的情况下运行视频和动画。
Adobe CEO Shantanu Narayen曾表示,Flash仅占Adobe营收总额的一小部分。因此没有对Flash持续进行输血,这也加速了Flash的落幕。雪上加霜的是,Flash近年来频繁爆出安全漏洞,这给Flash带来了更大的打击,Gartner高管Danny Brian在2014年曾表示,Flash的消亡已经不可避免。Node之父反Node,Deno强势崛起?
去年底,Node.js之父Ryan Dahl在柏林JS大会上发表了题为《Design Mistake in Node》的主题演讲,表示“Node失误太多无法回避,Deno前景明朗”。
“Deno”是Node的反写,有反Node的意思,目前看Node与Deno的主要参数比较如下:项目NodeDeno入口package.json配置import url直接引入API引入方式模块引入全局对象安全无安全限制默认安全Typescript第三方,如通过ts-node支持原生支持包管理npm + node_modules原生支持异步操作回调原生支持Promise包分发中心化npmjs.com去中心化import url打包、测试、格式第三方eslint、gulp、webpack、babel原生支持Deno的确针对Node的很多缺点进行改进,笔者在两行代码的库引发“血案”:坑了数百万个项目曾经介绍过,Node.js的依赖管理可能会引发小项目引发大血案的情况。
笔者认为,与Flash底层插件运行的方式不同,Node的缺陷并不是无法解决的,Ryan Dahl提出Deno应该有督促,请Node社区尽快直面问题的考虑。《三体》里有一句“消灭你,与你无关”,对于IT技术的发展亦然。IT技术发展日新月异,曾经的繁荣并不能代表未来的高枕无忧。
就如Flash一样,曾经红极一时的霸主也难逃最终的落莫结局,因此给Node的时间窗口并不长,尽快集合社区的力量解决问题才是正道。共勉。点击阅读原文,查看更多精彩!