ActionScript的忠实粉丝论Flashplayer之死

时间:2020-11-30 18:57:29

好久没有写无聊的IT评论了。现在的我一大半已经“沉沦”到生物和化学的海洋中去了,再不写点东西就真的要变成IT“圈外人”了。

      最近关于Flashplayer的各种不利消息,让我这个ActionScript的6年拥趸感慨不已。我在08年时曾说Flashplayer将会取代IE,在RIA时代成为数据交互的主要工具。的确,在那个时代,RIA领域仅有JAVA能够与Flashplayer在功能上一较高下,虽然当时的JAVA拥有更好的跨平台性能,但是JAVA在用户最关心的表现能力上却与Flashplayer相距甚远。无论是Flash的帧格式动画界面编写方式,还是Flex富有创意的XML界面+脚本语言编程方式,他们都能够生成可以直接嵌入到浏览器中,且又异常炫丽的RIA应用。2009年,Adobe又完成了Flashplayer在ARM上的移植,使得Flashplayer在跨平台性能上也达到了与JAVA匹敌的水平,而且还可以在不同类型的设备上提供完全准确的用户界面,从某种程度上说,这种跨平台性能甚至超越了公认为跨平台性能最好的HTML+Javascript(因为HTML+Javascript在不同浏览器中的行为还不尽相同)。所以,作为Flashplayer的忠实拥趸,我至今仍然认为mxml+Actionscript是我见过的最完美的界面描述方法和编程语言。虽然一向善于模仿的微软极其不要脸地推出了WPF(WPF采用与Flex完全相同的编程方式,界面也用XML描述,行为也用代码编写,只是编程语言从Actionscript变成了C#而已),但由于CLR与AVM的区别,C#对事件流的处理方式远不如Actionscript来得优雅。但事实是,无论Flashplayer有多优秀,在众多寡头的排挤之中,Flashplayer最终还是会沦为一个没落者,毕竟98%的装机率直接挑战了操作系统生产者在系统中的权威性。今年,就在Adobe完成了Flashplayer向ARM手机平台移植的伟大壮举之后,苹果突然宣布新的Macintosh将不再预装Flashplayer,而iOS将永不支持Flashplayer;而微软也在今年八月份宣布,新的Windows 8在Metro界面中将不支持Flashplayer。转眼之间,貌似已经可以在各种硬件平台、各种操作系统中叱咤风云的Flashplayer却在PC这片传统优势阵地上全面失守,只得眼睁睁地看着市场份额被尚不成熟的HTML5和不堪入目的Silverlight一点点地蚕食掉。不容否认,在IT的世界里,谁掌握了操作系统,谁就掌握了生杀大权,而Adobe作为一家专注于设计软件的公司,在PC用户这一传统地盘上并没有太多的话语权,而微软和苹果更是不会让这样一个“局外人”去掌控RIA虚拟机这关乎未来操作系统走向的重要部分。苹果的Macintosh Leopard,iOS,微软的Windows 8相继宣布将不再支持Flashplayer,但为了给用户一个合理的解释,他们给Flashplayer冠上了“占用资源大”,“安全漏洞多”等莫须有的罪名,稍有脑子的人都知道,Flashplayer的资源占用率远小于IE的一个选项卡,而所谓的安全漏洞更是需要不断地通过更新来修补的。在我看来,这是苹果和微软的HTML5和Silverlight在竞争不过Flashplayer时,利用自身操作系统垄断优势,打压对手的一步狠招吧。若真如此,与其说Flashplayer是死于推广不力,倒不如说Flashplayer是死于“羡慕嫉妒恨”啊。

      试图利用自己在某个领域的优势撼动操作系统的垄断地位的,远不止Adobe一家。Google曾试图从互联网的角度撼动操作系统的地位。于是Google首先普及了他的浏览器,进而极力推广其“操作系统透明论”了,向用户传达所谓的云计算概念,即就是“操作系统的唯一功能就是驱动所有硬件去运行浏览器,而所有的应用程序都可以通过互联网上的在线软件完成”。Google这种思想与Adobe是类似的,Flashplayer作为最完善的在线软件容器,一旦Google的这个梦想成真,最有可能的结局就是Google利用Flashplayer编写出各式各样的在线应用,取代现有的单机软件。但事实证明,近十年内,高速网络接入的瓶颈始终会制约在线应用的发展。举一个最简单的例子,无论是GoogleDoc还是Office Online,使用时我们都能严重地感觉到网络延迟的存在。而文本处理软件在单机软件中只能算是轻量级应用,如果是数据量更大的图片处理软件甚至矢量绘图软件,目前就更不可能在云端实现了。所以,无论从综合性能上讲还是从用户习惯上将,在短期内,C/S架构可能还将是软件的主流形态,曾经给人带来无限遐想的B/S架构只是Google带给我们的一个美好的梦想。

      虽然云计算短期内不能在PC上普及运用,但网络存储这个早就存在的事物却被冠以“云存储”的名号,再次回到了人们的视线。的确,目前的网络速度尚无法承载计算过程中复杂的数据交互过程,但是仅用来传输结果文档还是绰绰有余的。况且在服务器资源极度过剩的今天,云存储的成本也低到了可以忽略不计的地步。资料显示,金山快盘,微软Skydrive等云存储解决方案的用户量近两年的用户增长速度比云计算高出10倍多,这表明相比“在线软件+在线应用”的工作模式,用户更愿意接受一种“本地软件+远程文件”的工作模式,即就是在电脑中安装打开文件所需的各种软件,但却把所有用到的文件全部保存在互联网服务器上。

       可以肯定的是,桌面上的一个个小图标还将陪伴我们很长一段时间。但这一个个小图标后面却也隐藏着一场不见硝烟的战争——那就是虚拟机之争。从JAVA的JVM开始,人们逐渐开始领略到虚拟机在跨平台性能上的独到优势。JVM使得JAVA可以在x86,x64,ARM,MIPS,SPARC,PowerPC等各种指令集上运行,这让只能坚守x86这块已经异常贫瘠的阵地的微软眼红不已,于是微软在2003年开始部署自己的CLR运行时环境,也就是人们更为熟知的.NET架构。CLR作为CPU指令集与应用程序之间的一个中间层(也是操作系统的底层),可以起到类似于交叉编译的功能,让应用程序可以在各种指令集上运行。这也是Windows 8 最终能够支持ARM处理器的主要原因。而饱受C++摧残又不甘心使用JAVA的苹果也将要推出自己的虚拟机产品,作为Macintosh和iOS的底层虚拟机。而最老牌的虚拟机——JVM则以变种的形式(变成了Google私有的版本),成为了Android的底层虚拟机,在手机和平板市场上分到了一杯羹。还记得Flashplayer是什么吗?现在知道为什么Flashplayer会被置于死地了吧?Flashplayer(或者叫AVM3)同样是虚拟机,它拥有强大的编程语言支持,拥有不亚于.NET的丰富的类库,拥有不亚于苹果的表现能力,甚至拥有数以亿计的基于它的RIA应用,惟独没有一个运行与其上的且用于广泛用户支持的操作系统。目前AVM只能够以第三方虚拟机的形式存在于Windows,Android,Macintosh和Symbian中。但一旦这些系统的所有者开始想推广自己的虚拟机产品,让AVM扫地出门肯定是他们要做的第一件事。目前,苹果的全线产品已经基本上已经将Flashplayer封杀殆尽了;而Windows也将从Windows 8 开始封杀Flashplayer;羽翼尚未丰满的Android目前尚需要flashplayer来为它积攒一些人气,不过等Android在PC领域能够与Windows和Macintosh叫板的时候,即使那时AVM还能苟延馋喘,估计Google也不会让AVM在自己的地盘里继续呆下去了。

      借用Google某高管的话总结一下Flashplayer的悲剧:“Adobe本来可以实现一些非常伟大的事情,但他们把注意力都放在Photoshop之类的设计软件产品上,进而丢失了一个市值大于整个设计软件行业的市场”。这里提到的“伟大的事情”,指的应该就是操作系统虚拟机吧~~