感谢 Adobe (Macromedia) 的 Flash

原文:Thank you Adobe (Macromedia) for Flash
翻译:dreamana.com

Google trends, Apple, Google Chrome 以及 众多开发者 都对 Flash 赶尽杀绝。在我看来,若没有 Flash,如今的网页技术栈看起来可能是另一个样。

关于本文作者 (Credentials)

我写第一行 ActionScript 2.0 代码时是在 13 年前,那时候通过网页的形式流传。Flash 动画大爆炸,文字特效到处飞,还有 Flash 菜单。另外,我觉得我是世界上在配色方面最糟糕的人。虽然我喜欢 PC,我也不知道那个时候所做的就算是编程了。

若干年后,我写了越来越多的程序,有些用 Pascal 有些用 C ,它们都没有能吸引我很长时间(在大学之前)取而代之我用 Flash 做实验,我非常喜欢那种简单化:让 MovieClip 动起来,时间轴管理,或是做鼠标交互。大学期间,我转向关注 C++98,Verilog 及 SystemC。机缘巧合,我进入了游戏行业,在 GameFactory 工作。在那里我协作开发了 7 个 Flash 项目和 2 个 Unity 4 项目,之后我在 King 做 AS3/C++ 引擎开发者。所有这些都没有让我成为专家,既不是语言,也不是最佳实践。我能达到的那个水平是,觉得 Flash 提供那些 API 和技术很舒适,我可以很好地利用它们。

Flash 的亮点 (Bright sides of Flash)

API

我以前没注意到这方面,但当我作为一个引擎开发者工作之后,我才明白到,想要提供简洁而又有前瞻性的 API 是多么困难的事情。作为一名菜鸟,我只能臆测哪些 API 可以调用。在 Flash Player 上工作 8 年以来,我不记得有任何突变带来的问题。API 足够灵活去添加新功能,到处都非常聪明的设计了传递一个额外配置对象,比如 LoaderContext。例如,当他们要添加一个异步图像解码,不是通过添加额外参数给函数调用,而是 Context 的一个额外属性。这就是 KISS 原则 的实践。

What about Flash?

其实很久以前就想写一篇关于自己对 Flash 的理解的文章,今天有点空,静下心来慢慢总结一下。虽然近来有一些 Flash 的好消息,比如 AGAL2 即将发布,AS3 在 TIOBE 统计表上上升至 20 位;但是总体来说,我觉得 Flash 的前景是非常迷茫。

-过去-

HTML4 的大补丁

首先,我不想再去追溯 Flash 的历史。我认为,Flash 之所以存活多年,最后几乎成为桌面浏览器上各种多媒体插件的“唯一幸存者”,原因是在过去 Flash 补充了 Web

以前的 Web 是蹩脚的,对动画、视频及各种前端交互支持很弱,恰恰 Flash 填补了这片空白,加上 Flash 并不像其他多媒体插件那样单纯的只有音频视频播放,而是一种 RIA 技术(类似有 Java Applet,以及后来微软的 SilverLight,但是他们的市场占有率都不及 FlashPlayer)。FlashPlayer 插件的安装量一直居高,这样一来,Flash 为许多想做创意作品 并发布到互联网上的人提供了平台。

性能低下,完全是 Flash 的错吗?

ActionScript3 的出现无疑是 Flash 的第一次蜕变。AS3 运行在 AVM2 上面,从技术角度说,整体上是会比旧版的 (FlashPlayer 9.0 以前) 快的。而然,随着 FlashPlayer 一次次升级,为什么 Flash 给大家的印象仍然是“吃资源大户”?

Mobile 平台真是块宝地吗 ?

其实我想弱弱地问:“为什么大家都这样写——Flash vs HTML5?”

Flash 是一个开发平台,HTML5 是一个网页标准,为什么就打起架来了?

按我对这 2 种概念的理解,更有可比性的应该是:

Flash Platform(Flash 平台) vs Web Browser(各种浏览器)

ActionScript3 vs JavaScript

我就不想考究什么好什么不好了,其实大家爱用什么工具就用什么,就好像有些人很爱画画不管手上的是 Photoshop 还是 Windows 自带的画图工具,甚至是 Excel⋯⋯都玩得很乐。

一段官方消息出来以后又被人添油加醋,好吧,就当是 Flash 要死了,那也怎样呢?

即使真的那样,我也不觉得又多大损失。因为,想法是不会停留在工具上的。 反过来,使用不同工具的人也会无形中被引向不同的使用习惯。

引用一个牛人的话:

“我永远不明白对一项死了的技术白落井下石有何值得高兴。少了一项技术意味着少了一个选择,少了一股创新的源头活水。”——Grant Skinner

动摇了麽?

咱之前不要脸地评论了一下 HTML5 什么的,今天又稍微看了某些人的观点,然后想了想,其实我没必要去担心那些事。不应该太强硬,也不好太悲观。

当初 Flash 只是个做动画的,而现在是一个平台。也是来自一个公司的产品,是产品就会有问题。换个角度去想,要是换做你去做这些产品又会怎样?Flash 能够发展到现在这样子已经不容易了。只要还有人去关心,我相信它不会往死里发展。

当初选择 Flash 是为了啥?

我呢,开始的时候是非常没方向感的,只觉得它能做很酷的东西,于是玩了一下。这东西可是伴随着一路走过来的,看着它转型。在学习过程中,我逐渐意识到,不论用的是什么工具,更重要的是 “MIND”。

而我喜欢 Flash 的原因,现在,有很多。其中之一,就是能通过它够实现一些想法。通过它表达一些东西,我很热衷这样做。

但是很不幸的,Flash 开发成了我的职业。我这样说你可能会觉得奇怪,呵呵。因为这样“创作就不能自主”了(引用人家的话)。

不过,我还可以在业余时候做些本来想干的事情的,只不过时间不充裕而且很累。

还是专心修炼吧!

卖自己的糖水,让别人去改变世界吧

我本来不想去评论那些事,因为我没空,我宁愿多花点时间去学习技术。

但是最近居然还会频频看到某些网站穿插着那些炒作,然后后面的评论变成两大阵型口沫横飞。该是说转载“新闻”的那位居心叵测呢?还是该说后面的评论者们“正义感”都特别强烈?更有甚者直接跑到别人的 Blog 里去喷,真是惨不忍睹啊。

Flash 有什么不好?

   “占资源,卡死了,是垃圾!” 你可能会这样说。一个存活多年而且被使用了多年的浏览器插件,为什么以前没那么多人去批评?而现在,好了,有一个很有分量的人出来说了,然后你觉得可以借此机会将积怨多年的气一次全部喷出来了。

“但是你不能因为木工不好而责备锤子和钉子。”——《网站重构:应用 Web 标准进行设计》 3.6.

  Flash 开发者就像木工,Flash 是一个工具像锤子钉子。

  我也算是个 Flash 平台上的开发者,对于 Flash 性能问题,写代码的时候碰到得多了。在这个平台下做开发,不去了解它的特性,不遵循规范,代码写不好,就会导致很严重的性能问题。不过,要是你明白什么该做,什么不该做,代码写得好了,效率也不会差到哪里去的,问题就是不能保证每个开发者水平都很高。

很好,终于更名了

Flash Builder (Flex Builder 的新名字)

也许很多人不会在意这些软件叫啥名字,但实际上却是因为名字的问题,概念都被很多人误解。

Web 设计书中提及的头文字 F

《网站重构——应用 Web 标准进行设计》(Desiding with Web Standards) 摘录

首字母 F

在市场上所有成熟的、有竞争的专利技术解决方案中,没有一个像 Marcomedia Flash 那样成功和辉煌。这个产品起初只是一个微不足道的名为 FutureSplash 的插件,设计师用于在他们的页面里嵌入矢量图形和动画。

Tags