Flash和它陪伴世界的这25年

Flash和它陪伴世界的这25年

1993年初,一个叫Jonathan Gay的年轻人说服他的小伙伴兼老板Charlie Jackson开了一家叫做FutureWave Software的公司。

当时个人电脑界的黑科技是PenPoint OS[1],就是拿个电子笔在电脑屏幕上戳一戳画一画,Gay觉得这种更接近自然书写的交互模式对图形编辑来说是个大好机会,于是计划在这个操作系统上开发一款叫做SmartSketch的图形编辑器。

大多数伟大的创业故事往往都有一个平平无奇的开场。比如乔布斯在车库造出了第一代苹果,卡马克在湖畔别墅打着游戏写出了名垂游戏史的Quake,Gay看起来就是个老实巴交的技术宅样子(听名字也是),大约也不太擅长推销,于是他们又找到了Michelle Welsh做市场(听名字就是个销售人才),至此这家三个人的公司凑齐了它们最初的成员。

SmartSketch的开发不太顺利:在AT&T收购了PenPoint OS之后不久,便渐渐不再支持它的开发,于是基于这一操作系统的SmartSketch没卖出多少份就彻底失去了市场,据Gay自己的回忆[2],这款软件最值得一提的一份订单是卖给一家建筑事务所用于设计了比尔盖茨的大house。

事情的转机发生在1995年的SIGGRAPH。Gay带着他的SmartSketch去参会,许多人的人反馈是“这玩意儿要是能做动画就好了”,那个时候互联网刚刚兴起,Gay们觉得如果能让用户在互联网上观看、传播动画,应该是个不错的点子,回去就撸起袖子给这款软件添加了动画功能,面向Windows和Macintosh平台,并把它改名为FutureSplash Animator,于1996年夏天发布。

1996年的秋天对于FutureWave Software公司来说是收获的季节,它们接到了微软和迪士尼两家大客户,借由这两家客户的影响力,时年正在开发自己拳头产品Director的Macromedia公司找到了它们,表达了收购的愿望。公司运营了四年,花了五十多万刀也没见回本,公司的创始成员们也希望找到一个更大的平台让这款软件未来更好,于是双方一拍即合,收购后的FutureSplash更名为我们今天熟悉的Flash,像一道闪电在互联网世界里一路狂奔。

有趣的是,Gay们最初是想把公司买给Adobe的,只是对方当时对这款动画软件并没有太大的兴趣,时隔十年,当Adobe收购Macromedia,Flash终究又和Adobe重逢了。

大约是2001年的夏天,我在老家的影像店发现了一张Flash 5软件教学的光盘,“制作动画”这个概念让我觉得新奇又有趣,于是央求父母买了这张碟给我,买的另一张光盘是《剑侠情缘2》,彼时我当然没有意识到这两张光盘会如何影响后来的人生,大约也是冥冥之中有些宿命之类的东西。光盘里也没什么复杂的技术,只有两样:运动动画和形变动画,但是那个正方形变成圆形,又变回正方形的动画我起码看了上百遍。

前一年(2000年)发布的Flash 5是Flash系列中的一款经典,它正式引入了我们后来熟悉的脚本语言ActionScript。每个人的编程初体验各有不同,对我而言,我的Hello World既不是printf也不是cout,而是trace("Hello, World!")。

Flash在国内的兴起大约也是在2001年,闪客帝国和闪吧这些网站的流行催生出了一批“闪客”,相信那个时候冲浪的网民们对于他们都记忆犹新,“闪客”们既有从小痴迷动画的草根,像是小小,又有专业背景出身的美术动画从业人员,像是老蒋,拾荒,卜桦和阿桂。他们的初心是制作出好玩的内容,在形式和内容上各有擅场,又都不乏灵气,开启了最好的flash时代。

多少人还记得这段经典的火柴人打斗
憨憨的小破孩
朋克风的《新长征路上的摇滚》

后来Flash一路演进,先后推出的几个重要版本包括Flash MX(2002年,支持FLV视频播放),Flash MX 2004(2003年,支持ActionScript 2.0,首次支持了面向对象的编程语法)以及Adobe收购之后的Flash CS3(2007年,支持ActionScript 3.0,AS3彻底成为一个面向对象的脚本语言),我也从小学念到高中再到大学。认识大学时代的女友,恰是因为她在QQ空间里看到一堆我自己做的小动画,两人以“学动画和教做动画”为由勾搭在了一起(工科直男女的爱情就是这么朴实无华且枯燥)。后来她十八岁生日,我送的礼物是一张自己用Flash画的电子贺卡,现在来看,这礼物实在土得掉渣,但是死宅程序员你又怎么能要求更多呢?

2005年,几个从PayPal离职的工程师搞了一个视频网站,起了个名字叫油管,让网名们方便上传和分享视频,在确定技术方案的时候,他们毫不犹豫地选择了Flash。也是由此开始,RIA(Rich Internet Application)的概念在互联网2.0的时代大放异彩,充分的交互性和便利的视频播放功能让Flash成为了互联网的事实标准:网络上超过75%的视频播放依赖着Flash技术,Flash Player的装机量超过90%。

2007年iPhone的诞生对互联网世界是一次地震,标志着移动互联网时代的来临,人们的上网习惯和媒介被重新定义,对Flash来说,也是滑落的开始。

在iPhone诞生的同年,苹果宣布不在新手机平台上支持Flash Player,此后发布的iPad也是如此,乔布斯那封著名的Thoughts On Flash[3]历数了Flash技术的几大“罪状”:包括闭源、性能差和能耗高。在今天看来,拖着重重历史包袱的Flash Player和效率不高的ActionScript 3.0的确在对性能功耗极为敏感的移动平台上难堪大用,尽管后来Adobe陆陆续续推出了Adobe AIR等技术修修补补也难挽败局;而在苹果这个封闭的生态环境里,使用一个完全私有的技术作为底层基石,从商业角度也并不现实。Flash没能搭上移动互联网的班车,取而代之的,是我们今天熟悉的Unity。

2008年,“偷菜”突然成为了互联网上最流行的游戏,过亿的日活真正做到了老少皆宜,它和社交媒体互相成就,可说是Flash最后的光芒。在国外,类似的事情发生在Facebook和Zynga身上,“网页游戏”的概念伴随着人们的社交需求变成新的蓝海。其实我很欣赏网页游戏背后的逻辑和理想:真正的去端化。这一点和我们今天流行的云游戏概念颇有相似之处。只是落地到真实的场景下,限于国内网页游戏开发者的水平层次不齐和资本的急功近利,游戏设计变成了人性弱点的捕捉过程,各类擦边球和氪金成为了游戏内核,加上AS本身难堪大用,游戏品质更是一言难尽,最终“网页游戏”彻底沦为了贬义词。

是兄弟就来偷我

2010年,Flash Player 11宣布支持硬件GPU加速功能,并设计了一套称为Molehill的3D图形API,其设计基本上是对DX 9的二次封装,但这套API我认为最傻逼的决定是Shader的编写是基于一套叫做AGAL的类汇编语言而非类C的高级语言,此后又是GLSL2AGAL这类修修补补的方案,使得要在这套API上设计一个大型3D引擎极难实现。

Adobe MAX 2010大会上演示的赛车游戏

11年的时候我正读大二,和另外一个网络好友因为技术相识,一起写了一款叫做Nest3D的flash 3d引擎。这个引擎在今天看来当然极为简陋:只有简单的模型加载,动画播放,基础光影和后处理的功能,却也是我的图形学启蒙。当时还在Adobe的7yue在github上看到我们这个toy engine,写邮件邀请朋友去Adobe中国实习,恰好他远在西北又课程颇多,我便争取了这个机会。初为北漂颇为辛酸,每月三千多块的实习生工资只够住一间十平米的筒子楼加上日常吃喝,但遇到的同事人都极好,Flash伴随我成长多年,有朝一日能在Flash Runtime组工作是真正的dream work,所以总还是快乐的回忆多得多。暑期实习结束后,同事们认可我的工作,又鼓励我远程工作,于是这份实习一直持续到13年毕业,作为人生的第一份实习工作,很难想到更好,回想十年前的夏天,彼时正在西北小镇念小学的我也很难想到未来会以这样的形式和Flash相伴十数年。

2014年,Adobe宣布关闭中国的研发部门,曾经的一批老同事继续工作在相关的领域,有人又做了一段时间网页游戏,另一些人成立了白鹭。

因为种种原因,毕业之后我没有选择留在Adobe(多半是因为我实在不喜欢北京吧),虽然一直在做图形渲染相关的工作,但和从前的老同事们渐渐没有了联系;慢慢我不再做和Flash相关的事了,但每次买新电脑或者安装系统的时候,还是会习惯性地安装Flash;再后来HTML 5渐渐流行了起来,每每HTML 5新技术在网络上探讨的时候,我还是会习惯性地护短:Canvas,WebWorker,WebGL,这些不都是Flash早就有的技术了吗?然后2017年,Adobe宣布将在2020年不再支持Flash,各家浏览器厂商也纷纷表示2020年是Flash的最后一年[4][5][6]

今年是2020年了,也就是说,是时候和这个老朋友说再见了。

常说一件事物陪伴你久了,你突然觉得失去往往不是它真正离开的那个瞬间,而是后来的某件小事,对我而言,我意识到Flash离开的瞬间,是网页里是否允许播放Flash插件的弹窗。

过去的二十五年里,它以各种形式给我们呈现了网络世界的多彩,在对HTML 5和JavaScript的标准贡献上,它功不可没,从我个人的角度来说,它教会我写第一行代码,让我找到了一件热爱的事。

谢谢,再见。

参考

  1. ^https://en.wikipedia.org/wiki/PenPoint_OS
  2. ^https://web.archive.org/web/20071026102654/http://www.adobe.com/macromedia/events/john_gay/page03.html
  3. ^https://mashable.com/2010/04/29/steve-jobs-flash-is-no-longer-necessary/
  4. ^https://blog.chromium.org/2017/07/so-long-and-thanks-for-all-flash.html
  5. ^https://blog.mozilla.org/futurereleases/2017/07/25/firefox-roadmap-flash-end-life/
  6. ^https://blogs.windows.com/msedgedev/2017/07/25/flash-on-windows-timeline/
编辑于 04-08

文章被以下专栏收录

    不定期分享自己觉得有趣的图形学内容,喜欢和图形学相关的一切技术,希望结识更多喜欢图形学的朋友,欢迎分享和指正。