曾几何时,一谈论到程序,人们的脑海里都会想象出这样一副情景:戴眼镜的程序员,面对着一行一行毫无生气的代码,还在敲着键盘输入更多的字符,最后按几个键,一个程序诞生了,可这个程序就像那些代码一样毫无生气,界面呆板,操作单一让人提不起精神。
可如果人们一提到Flash,往往会眼前一亮:啊,我记得这个,漂亮的图片做成连续的动画,还可以做一些小规模的游戏,动画的效果cool极了,声音效果也可以接受,关键是动画文件很小,一会儿就可以下载到自己的机器上慢慢享受,让人沉浸在里面几个小时也不觉得累……
多么可怕的对比!第一次看到Flash的时候我就想过,如果这东西要能和人交互并完成一些工作的话,那我们学C/C++、Java和其他的语言还有什么意义?当时只是对自己的想法付之一笑:那么简单的东西怎么可能比得上本地可以运行的可执行代码?!顶多是限制在浏览器的框框里像俳优一样逗大家一笑而已,奇技淫巧!奇技淫巧!!!

可事实发展证明Macromedia不想让自己的产品局限在逗大伙开心的级别,从Coldfusion的推出就证明了Macromedia也誓死要在程序开发上逐鹿中原,而它看上的,不是一个一个在本机上运行的可执行文件,而是定位在客户端和服务器上的Internet程序。
如果说ColdFusion的出现使编程还算编程的话,那Flash MX 2004的推出,着实惊动了广大埋头苦干的程序员:Flash做得越来越像程序,而且功能也越来越像程序了。
自从ActionScript添加到Flash中时,Flash就不仅仅是做动画的工具了,闪客们可以鼓捣着漂亮的图片,操着简单易学又强大专用的脚本描绘他们心中的Flash。随着网上绚丽而又强大的Flash一波一波袭如人们的眼帘,我们不得不开始重新审视这个昔日逗大伙一笑的技术了。

Macromedia在网络媒体方面的地位就和微软在桌面操作系统的地位一样,以前还有Adobe可以和它对抗,而现在Adobe也彻底转向平面设计方向,而再也不踏入网络媒体这个Macromedia的主场了。而让人尊敬的是,Macromedia没有止足不前,而是兢兢业业地发展自己的产品。每次Macromedia发布新产品或新版本的时候,它的忠实用户们都会得到以前完全不敢想象的体验,为Macromedia的强大而由衷的高兴。我们也都可以看到,Flash从4.0、5.0到现在的MX 2004一路走来,每一次新版本的出现都伴随着网上Flash水平的大幅上升,让人们惊讶这小小的动画总是可以不断释放出新的力量,让人惊奇,让人刮目。而Macromedia正是以这样的动作,预示着一个新的时代的到来:颠覆Internet的RIA时代!

RIA即Rich Internet Application的缩写,在我看来是一种以Flash为核心手段,克服HTML页面操作方式单一的缺点,赋予Internet页面足以匹敌本地程序的表现力和控制力的“应用程序”,虽然还是在浏览器的基础上与用户交互,但已经具备以往人们观念中应用程序的雏形。虽然现在Flash离不开浏览器,但这不是限制它发展的瓶颈,Flash的在Windows操作系统的ActiveX控件可以方便地插入到应用程序中,赋予使用它的程序播放Flash和支持ActionScrip的能力。我还不了解非Windows平台上利用Flash插件的开发,但我想可以这样,做一个浏览器的框架,不需要像通用的浏览器一样完备地支持HTML、各种script以及css和xml等等,只是可以插入Flash Player的ActiveX控件或者Mozilla类浏览器的xpi扩展,然后就完全可以借用Flash的表现力和交互性完成其他的一个应用程序能够做的事情,我们更可以扩展这个浏览器框架,让它支持对本地文件的操作,这样一来人们完全意识不到这是一个Flash,而以为是一个界面设计出色的应用程序。
这只是我对Flash作为本地应用程序的一个构想,离RIA的目标还有很远,因为RIA是把眼光放到Internet上的技术。要想实现RIA就离不开各种应用服务器的支持。Flash和Macromedia自家的ColdFusion天生就是一对搭档,二者相互补充,在国外的网站设计中已很常见。ColdFusion现在可以连接到Java应用服务器上,这为Flash添加了更强大的后盾,Flash现在完全可以用来作为代替JSP的J2EE表示层,而且会比JSP做得更好。
最近Macromedia又推出了更具开创性的Flex,这是一个完全体现RIA概念的产品,开发者可以利用类似JSP的标签来创建Flex应用程序,可以使用MXML这种Macromedia扩展了的XML类语言来描述用户界面、创建数据模型和访问服务器资源,还可以利用熟悉的ActionScript来描述复杂的数据模型、流控制和事件处理,更可以使用 Macromedia Flash MX 2004 创建自定义组件并导出为通用组件格式 (SWC),以导入 Flex 应用程序,完全符合现代软件工程学的重用思想。这样一个强大的产品,第一次看到介绍时让我不禁为自己想成为程序员的道路而担忧……

Flash现在不仅是一个产品,一个播放器,一个做动画的工具,而是成为了像Java、.Net一样的平台。不管广大的程序员们承认不承认,但以往他们看不起的那些闪客们,以后也许会依靠Macromedia的产品,做出抢占市场的解决方案。虽然Flex还不成熟,虽然Flash的ActionScript还比不上Java、C#一样复杂和功能强大,但现在Flash无疑已经是Internet上表现层的最佳选择。
也许不久的将来,就在Java和.Net程序员还在争论比试的时候,很少人注意到,Macromedia正在走近他们,用它的产品极佳的表现力,在Java和.Net阵营都站稳了脚跟。