转载:Luar's Production 版權所有。
经过2005年的时间,做过大大小小不同的Flash应用,当我忙于为2006年第一个重头而大型的Ajax项目做准备、文档和可行性研究等时,我不禁不断问自己,Flash的未来在哪里?Flash的优势在哪里?Flash的重要性在哪里?
我的角色
先从自己的角色说起,我平日工作是做Flash,这是人所共知的,但不只是Flash这么简单,我可是一个咨询、协调和开发的角色,首先因应客户的问题和预算,提供硬件上和软件上的建议,例如要用什么Server?什么OS?Linux/Windows?什么Server-side Program和Database等。
在Client-side/Browser/Front End上,我是一个UI Designer,我非常关心怎样给予使用者最好体验,包括:
快速下载
简易操作
界面流畅,慢的计算机也跑得顺
不占用过多CPU Power
Cross Browser和Cross Platform
同时我也是一个Information Architect,思考怎样将Server传来的数据(Data)转化为清楚、有用、条理分明的资料(Information/Content),不单只在展示(Presentation)上满足使用者,更要协助使用者可以将资料再运用,例如:选取Copy-n-Paste、打印、另存、Bookmark、Forward Link等。同时,我更为应用系统研究合适的操作步骤,包括每个操作的Screen Flow,怎样协助使用者操作、找出错误、处理Back Button,提交资料到Server前优化工作等。
到了Server-side,我变成一个中间人角色,跟Programmer沟通,告诉他们需要什么API供给Front End使用。最简单层次也要跟很多不懂Flash的Programmer沟通,告诉他们怎样跟Flash作LoadVars。这个中间人角色在开发过程中,变成了一个System Analyst,因为我要思考的既是怎样分工,也要考虑到应用系统将来维护和扩展性。分工上简单地说是怎样去将应用系统MVC化,让美工只专注在设计上。维护和扩展性,要考虑到将来增加功能、Localization多语言版本等问题、开放API等Web 2.0的东西。因此,Front End我要周旋于HTML, CSS, JavaScript, XML, XSLT, Flash的取舍,Back End要想2-Tier还是3-Tier,SOA等等问题。这也是我咨询一部分,给客户建议,告诉Programmer该做什么。
因为这个背景,所以我对于Front End技术的选择非常关心,过去是HTML vs Flash?现在是AJAX vs Flash?Adobe vs M$ vs Open Source?因为HTML对Flash取舍,已经影响了我关心的「使用者最好体验」,就是刚才提到几点,同时它也影响了Server架构,例如用Flash是否可以直接连Web Services产生一个简单2-Tier的SOA?
我的项目
我所有项目,99%都有Flash,基本上所有Flash Spectrum东西我都有做过。我将范围收窄在网上,即Browser里东西。Browser里东西,除了新闻纯文字信息性的网站绝对不需要用Flash外(看新闻影片Video除外),我看到要用Flash地方,其实分为四种:自我介绍的中小企公司网站、电影娱乐产品宣传的行销性网站、网上商贸资料搜索性网站、Web Based Application(即纯粹解决商业问题的应用程序,由过去C/S搬上B/S)。
公司网站,考虑因素很低,使用者不会长时间留在网站里,没有什么操作,内容更新规模低至少,因此运用HTML或是Flash,基本上由客户和价钱决定。其实这类网站很依靠Search Engine带来浏览者,纯Flash网站怎办?没有我提醒,客户其实很难察觉这大问题。
行销性网站,一定是Flash,因为多姿多彩,影音娱乐声色俱全是这些网站必需的,目前有的技术,唯有Flash才能胜任。行销性网站不会长时间在线,将来维护问题需要很少。
分析运用Flash的优劣
后两者,就是我最关心的所在。网上商贸资料搜索性网站(下简称「资搜网」),除了一般网上购物外,还包括资料搜索性,例如地图上增值服务、找餐厅、订酒店机票等服务。这类网站,对于我关心的「使用者最好体验」最为重要,因为使用者除了要经常使用外,还要对资料再运用。一个用户体验为主的网站,如果这方面做得不好,直接是损失商机,例如放弃Check out等。虽然Macromedia的口号是体验攸关(Experience Matters),不过,我看来,Flash正为这类网站提供最差体验。
一、 失去Back Button和Bookmark/Forward Link能力
有些基本Flash缺点,前人都已经说了(Flash: 99% Bad),「资搜网」对Back Button和Bookmark/Forward Link非常重要。以HTML一页为单位的「资搜网」,可以用GET Method来查询,搜索的参数都在网址上,既可以按Back Button就再搜寻(大部分使用者,对错误操作仍然是习惯按Back Button),也可以Bookmark和Forward Link,试比较HTML的Flickr和Flash的Fotologue.jp,后者网站怎样告诉朋友我喜欢的一张相片?
虽然这些问题(Ajax也有面对)Flash有解决方法(参考我的《AS2与RIA》),但绝对是痛苦开发过程。
二、 不能资料再运用
资料再运用上,Flash网页难以让使用者储存和打印,虽然Flash提供了PrintJob API,可以弄一个Button供使用者打印,不过一天Flash寄生在Browser里,一天使用者直觉上会按Browser里Menu Bar上的Print(难怪Adobe要搅她那个Flash+PDF+HTML+CSS的Apollo,努力跳出Browser框框)。Ajax也有难以让使用者储存问题,因为网页内容是动态产生。
三、 文本处理能力不快不方便
Flash一直强调自己展示能力,可惜这又正正曝露出它天生致命点,文本(Text)处理能力不快不方便,我不会说它不强,它可以Embed Font,Flash 8更可以控制Leading Kerning等,可惜它很慢,而且不方便使用者!文字根本是HTML天生原素,在Browser里可以自由快速地滚动浏览,自由选取,更可以随便让使用者控制字体大小。在美工主导下的Flash字体,非常细小难于阅读,大量文字滚动起来又慢又吃力(我以前批评过Flash Paper)。另一方面,HTML文字可以随Browser大小自由换行,Flash里又花费大量功夫。Localization上,HTML有很多方法,例如套用不同Template代表不同语言版本等,文字因为储存在纯文本文件,可以给翻译容易处理。在Flash里,又是另一个使人头痛问题,抽出来放在XML里?Dynamic TextField会失去美丽字体!结果又要花费美工复制多个FLA语言版本,将来维护上又是一个极大烦恼。
四、 文字/图文列表处理能力弱
在「资搜网」上,经常要显示大量文字/图文夹杂搜寻资料时:
Flash就显得软弱无力,用DataGrid?它慢得可怕,又非常难Hack,CellRenderer不是一般开发者懂得。对于这样资料,要先搅清楚它们是Tabular Data还是只需要Tabular Format,前者需要一个DataGrid形式显示,因为DataGrid可以用Columns排序、做分页等。Tabular Format只不过在HTML上,用Table排列出,在Flash里用duplicateMovieClip或者Flex的mx:Repeater。HTML Table列出,ScrollBar由Browser负责,快速而方便;在Flash里则要自制ScrollBar,慢和不方便。
五、自制界面困扰使用者
谈到自制ScrollBar,Jakob Nielsen有文章指出Flash自制ScrollBar的问题。Flash界面不单是ScrollBar问题。它更引申,因为Flash非常自由,美工可以自由发挥,变成界面可以有一些新奇古怪的操作方法,使用者面对不是他们熟悉的OS操作方法,就有犹疑。难道我们可以坐在使用者旁边教他们用,还是提供使用者手册给他们看?「资搜网」用户是广大的,根本没有可能教他们用,因此,简单而平常界面才最重要。
小结
「资搜网」最适合一页页的HTML来显示,Ajax/Flash只适合作搜索操作步骤上改善使用者体验,例如提示错误,快速跟Server验证等。Refreshless Page是盲目无意义的追求!
Flash没有帮助开发者开发RIA
应用开发是很多ISV和开发者日常的工作,因为商业公司有很多数据化后业务操作,不是一般盒装软件能够满足,因此需要这类公司或开发者为他们订制或客制。这类应用程序简单地只是一个资料输入,数据储存,资料输出的过程,因此所谓应用程序只不过是一个输入界面Form加一个Database。以前是Client-Server(C/S)架构,现在只不过搬到Browser里。
一、劣质界面组件
输入界面包括TextInput, Button, Radio Button, CheckBox, List, ComboBox等,就是Flash里v2 Component,可惜v2 Component非常慢,Buggy和档案大,缺乏优质界面组件一直是Flash开发应用程序第一大问题。Flex组件好很多,可惜昂贵价钱使大部分开发者望门轻叹。虽然Flex Builder 2和AS3组件可以改善这问题,可惜待推出至Flash Player 8.5普及,还有一段长时间,远水不能救近火。不过,这些基本界面组件,HTML已经有,由于它们是HTML天生原素,在Browser里支持十分好,反应快,又支持Tab Focus和键盘。
二、两边不讨好界面制作过程
在Flash Timeline以Drag-n-Drop组件的方式制作界面,还是在Dreamweaver里也是以可视化的方式制作界面,不过同样容易地以纯文字方式去调节来得方便和快速?(Flex Builder也是可视化+文字化,不过高贵Flex根本不是一般开发者用)。程序员怎样选择?对于美工,他们想自订界面外观,Flash v2 Component/Flex的方式,他们可以参与多深入呢?HTML+CSS方式修改是否最简单快捷方便?
当重要界面组件被商业企业Adobe以谋利方式控制着时,我们是否应该考虑更讨好,免费、标准和广大Browser支持的HTML Form Element呢?
三、难以容入的团队开发
FLA难以整合到CVS,MXML只有干看,没有钱用,没有文字化Flash应用开发方式,不能纯用自己喜欢的Editor开发,SWF Compiler遥遥无期,MTASC自我放弃。Flash应用开发成本比HTML贵很多,单是等Flash MMC Compile的时间已经浪费了一个人生(见用MTASC可以生仔)。
四、根本没有所谓桌面软件操作经验和需要
Flash喜欢说可以有桌面软件操作经验的RIA,即是有Drap-n-Drop。大部分B/S应用,刚才已经指出了,是一个资料输入的Form而已,有需要什么创新的Drag-n-Drop操作方法吗?
五、应用程序需要页面无刷新
所有应用程序开发者都很怕使用者按Back Button,因为容易产生数据不完整错误,也讨厌Reload这Button,容易产生数据重复问题。从C/S走过来,应用程序从来不需要Back和Reload Button。因此页面无刷新是对开发者很重要功能,也是Flash当初卖点。
六、Cross Platform和Cross Browser
应用程序以Web Based来部署,B/S广泛代替C/S,原因是Internet/Intranet和Browser是一个广泛和容易部署的应用程序平台。不过,因为广泛,所以有Cross Platform和Cross Browser问题,Flash冒起正正因为它真的可以Write Once, Run Anywhere。
第五、六点不是Flash缺点,而是提出来因为这两个Flash独特优点,正正被Ajax代替。第五、六点其实是Web Based Application开发者很需要,因此当Ajax出现时,立即引起轰动!为什么他们却无视Flash存在?Ajax冒出,除了以上技术上优势外,还有多家著名Web 2.0概念的网站都是用Ajax,变成了Web 2.0概念中都包含Ajax,可怜Flash要拚命跻身入去(Mike Chambers和Kevin Lynch说法),说服世人Flash也是Web 2.0一分子。
小结
HTML Form Element和HTML文字/图文列表处理能力,纯文字开发过程、XMLHttpRequest提供无刷新数据交换,Cross Platform和Cross Browser,所有Web Based Application开发需要的东西,Ajax都比Flash好,Flash有何优势,难道以为那些Expressiveness和Transitions Effect来骗骗门外汉?应用程序贵乎实用而非花巧,当使用者每天都使用程序时,还要他们浪费时间等Flash用Transitions Effect将一张Form旋转放大Fade In出来吗?
邪恶的Adobe
封闭收费 vs 公开免费
当完成合并那天的FAQ提到要将Flash Player和PDF合并,Flash社群震撼是如何大!这要Adobe方面漏夜修正FAQ字眼,Mike Chambers等走出来澄清。我想人们应该要明白Flash无论多de facto standard都好,始终是控制在一家牟利的商业企业里,人家要给你劣质Component,卖你1.2万美元Flex,你是没办法的。同样道理,因为公开、免费、标准的技术大凑合Ajax会被人重视,原因在此(见Open Source Action Items中Aral Balkan意见)。开发者不可以将自己将来、前途和钱途寄托在单一公司、单一封闭技术里。
Flash是二线产品
我对Adobe吞并Macromedia感觉,如香港回归大陆一样,虽然有强劲经济靠山,但香港独特国际优势会逐步被大陆化而变成中国一个沿海普通城市。Flash现在只不过沦为Adobe里一个二线产品,Adobe可以继续放主力在她赚钱的Documentation和PDF业务、Flash和那可能赚大钱的Flash Mobile远景,Adobe会重视吗(见Adobe Faces Tough Choices)?香港不再生金蛋,Flash也不再闪烁!
Macromedia精神不再
况且,我从来不认为Flash Mobile会成功(1,2)。Macromedia精神和Vision究竟有多少能够再延续在Adobe里?虽然有五位Macromedia高层入了Adobe管理层,但有实权吗?Stephen A. Elop所谓President, Worldwide Field Operations,看来有虚名没有实权,新安插出来职位?Adobe虽然接收了Macromedia的员工,但多少会长期留下,我知道一些高层合并过程中已经离开,Flash开发团队的精英会否一年半载后意兴阑珊而离开或另起炉灶?(如Macromedia买了RoboHelp后,RoboHelp员工拉队离开1,2)
Adobe得不到Macromedia开发社团信任,虽然她已经发公开信保证,但各MMUG将准备以行动证明拒绝Adobe化决心(见LondonMMUG、CPMMUG和香港MMUG)。
最后总结
Flash最适合多媒体的行销网站运用,其它方面,它正是腹背受敌中,视觉实验可以玩Processing,应用程序可以考虑Ajax。我建议所有热爱Flash的RIA Developer,2006年应该将目光多投向Ajax,因为同样是ECMAScript,同样是XML Parsing,非常容易学。我们Flash Developer有5年时间,从过去错误经验成长,如果将这些经验知识运用到Ajax上,一定能找到我们自己的优势的。
最后,我不是今天的我打倒昨天的我,我曾经对Ajax作出批判,但了解过我的工作背景:我是由钻研DHTML讨厌Flash到开始转玩Flash的;长期关心本站的朋友都知道,我是一个关心Client-side技术发展的人(1,2,3,4)。所以,任何对改善使用者经验、改善开发者工作的有价值技术,我们都不能放过。
经过2005年的时间,做过大大小小不同的Flash应用,当我忙于为2006年第一个重头而大型的Ajax项目做准备、文档和可行性研究等时,我不禁不断问自己,Flash的未来在哪里?Flash的优势在哪里?Flash的重要性在哪里?
我的角色
先从自己的角色说起,我平日工作是做Flash,这是人所共知的,但不只是Flash这么简单,我可是一个咨询、协调和开发的角色,首先因应客户的问题和预算,提供硬件上和软件上的建议,例如要用什么Server?什么OS?Linux/Windows?什么Server-side Program和Database等。
在Client-side/Browser/Front End上,我是一个UI Designer,我非常关心怎样给予使用者最好体验,包括:
快速下载
简易操作
界面流畅,慢的计算机也跑得顺
不占用过多CPU Power
Cross Browser和Cross Platform
同时我也是一个Information Architect,思考怎样将Server传来的数据(Data)转化为清楚、有用、条理分明的资料(Information/Content),不单只在展示(Presentation)上满足使用者,更要协助使用者可以将资料再运用,例如:选取Copy-n-Paste、打印、另存、Bookmark、Forward Link等。同时,我更为应用系统研究合适的操作步骤,包括每个操作的Screen Flow,怎样协助使用者操作、找出错误、处理Back Button,提交资料到Server前优化工作等。
到了Server-side,我变成一个中间人角色,跟Programmer沟通,告诉他们需要什么API供给Front End使用。最简单层次也要跟很多不懂Flash的Programmer沟通,告诉他们怎样跟Flash作LoadVars。这个中间人角色在开发过程中,变成了一个System Analyst,因为我要思考的既是怎样分工,也要考虑到应用系统将来维护和扩展性。分工上简单地说是怎样去将应用系统MVC化,让美工只专注在设计上。维护和扩展性,要考虑到将来增加功能、Localization多语言版本等问题、开放API等Web 2.0的东西。因此,Front End我要周旋于HTML, CSS, JavaScript, XML, XSLT, Flash的取舍,Back End要想2-Tier还是3-Tier,SOA等等问题。这也是我咨询一部分,给客户建议,告诉Programmer该做什么。
因为这个背景,所以我对于Front End技术的选择非常关心,过去是HTML vs Flash?现在是AJAX vs Flash?Adobe vs M$ vs Open Source?因为HTML对Flash取舍,已经影响了我关心的「使用者最好体验」,就是刚才提到几点,同时它也影响了Server架构,例如用Flash是否可以直接连Web Services产生一个简单2-Tier的SOA?
我的项目
我所有项目,99%都有Flash,基本上所有Flash Spectrum东西我都有做过。我将范围收窄在网上,即Browser里东西。Browser里东西,除了新闻纯文字信息性的网站绝对不需要用Flash外(看新闻影片Video除外),我看到要用Flash地方,其实分为四种:自我介绍的中小企公司网站、电影娱乐产品宣传的行销性网站、网上商贸资料搜索性网站、Web Based Application(即纯粹解决商业问题的应用程序,由过去C/S搬上B/S)。
公司网站,考虑因素很低,使用者不会长时间留在网站里,没有什么操作,内容更新规模低至少,因此运用HTML或是Flash,基本上由客户和价钱决定。其实这类网站很依靠Search Engine带来浏览者,纯Flash网站怎办?没有我提醒,客户其实很难察觉这大问题。
行销性网站,一定是Flash,因为多姿多彩,影音娱乐声色俱全是这些网站必需的,目前有的技术,唯有Flash才能胜任。行销性网站不会长时间在线,将来维护问题需要很少。
分析运用Flash的优劣
后两者,就是我最关心的所在。网上商贸资料搜索性网站(下简称「资搜网」),除了一般网上购物外,还包括资料搜索性,例如地图上增值服务、找餐厅、订酒店机票等服务。这类网站,对于我关心的「使用者最好体验」最为重要,因为使用者除了要经常使用外,还要对资料再运用。一个用户体验为主的网站,如果这方面做得不好,直接是损失商机,例如放弃Check out等。虽然Macromedia的口号是体验攸关(Experience Matters),不过,我看来,Flash正为这类网站提供最差体验。
一、 失去Back Button和Bookmark/Forward Link能力
有些基本Flash缺点,前人都已经说了(Flash: 99% Bad),「资搜网」对Back Button和Bookmark/Forward Link非常重要。以HTML一页为单位的「资搜网」,可以用GET Method来查询,搜索的参数都在网址上,既可以按Back Button就再搜寻(大部分使用者,对错误操作仍然是习惯按Back Button),也可以Bookmark和Forward Link,试比较HTML的Flickr和Flash的Fotologue.jp,后者网站怎样告诉朋友我喜欢的一张相片?
虽然这些问题(Ajax也有面对)Flash有解决方法(参考我的《AS2与RIA》),但绝对是痛苦开发过程。
二、 不能资料再运用
资料再运用上,Flash网页难以让使用者储存和打印,虽然Flash提供了PrintJob API,可以弄一个Button供使用者打印,不过一天Flash寄生在Browser里,一天使用者直觉上会按Browser里Menu Bar上的Print(难怪Adobe要搅她那个Flash+PDF+HTML+CSS的Apollo,努力跳出Browser框框)。Ajax也有难以让使用者储存问题,因为网页内容是动态产生。
三、 文本处理能力不快不方便
Flash一直强调自己展示能力,可惜这又正正曝露出它天生致命点,文本(Text)处理能力不快不方便,我不会说它不强,它可以Embed Font,Flash 8更可以控制Leading Kerning等,可惜它很慢,而且不方便使用者!文字根本是HTML天生原素,在Browser里可以自由快速地滚动浏览,自由选取,更可以随便让使用者控制字体大小。在美工主导下的Flash字体,非常细小难于阅读,大量文字滚动起来又慢又吃力(我以前批评过Flash Paper)。另一方面,HTML文字可以随Browser大小自由换行,Flash里又花费大量功夫。Localization上,HTML有很多方法,例如套用不同Template代表不同语言版本等,文字因为储存在纯文本文件,可以给翻译容易处理。在Flash里,又是另一个使人头痛问题,抽出来放在XML里?Dynamic TextField会失去美丽字体!结果又要花费美工复制多个FLA语言版本,将来维护上又是一个极大烦恼。
四、 文字/图文列表处理能力弱
在「资搜网」上,经常要显示大量文字/图文夹杂搜寻资料时:
Flash就显得软弱无力,用DataGrid?它慢得可怕,又非常难Hack,CellRenderer不是一般开发者懂得。对于这样资料,要先搅清楚它们是Tabular Data还是只需要Tabular Format,前者需要一个DataGrid形式显示,因为DataGrid可以用Columns排序、做分页等。Tabular Format只不过在HTML上,用Table排列出,在Flash里用duplicateMovieClip或者Flex的mx:Repeater。HTML Table列出,ScrollBar由Browser负责,快速而方便;在Flash里则要自制ScrollBar,慢和不方便。
五、自制界面困扰使用者
谈到自制ScrollBar,Jakob Nielsen有文章指出Flash自制ScrollBar的问题。Flash界面不单是ScrollBar问题。它更引申,因为Flash非常自由,美工可以自由发挥,变成界面可以有一些新奇古怪的操作方法,使用者面对不是他们熟悉的OS操作方法,就有犹疑。难道我们可以坐在使用者旁边教他们用,还是提供使用者手册给他们看?「资搜网」用户是广大的,根本没有可能教他们用,因此,简单而平常界面才最重要。
小结
「资搜网」最适合一页页的HTML来显示,Ajax/Flash只适合作搜索操作步骤上改善使用者体验,例如提示错误,快速跟Server验证等。Refreshless Page是盲目无意义的追求!
Flash没有帮助开发者开发RIA
应用开发是很多ISV和开发者日常的工作,因为商业公司有很多数据化后业务操作,不是一般盒装软件能够满足,因此需要这类公司或开发者为他们订制或客制。这类应用程序简单地只是一个资料输入,数据储存,资料输出的过程,因此所谓应用程序只不过是一个输入界面Form加一个Database。以前是Client-Server(C/S)架构,现在只不过搬到Browser里。
一、劣质界面组件
输入界面包括TextInput, Button, Radio Button, CheckBox, List, ComboBox等,就是Flash里v2 Component,可惜v2 Component非常慢,Buggy和档案大,缺乏优质界面组件一直是Flash开发应用程序第一大问题。Flex组件好很多,可惜昂贵价钱使大部分开发者望门轻叹。虽然Flex Builder 2和AS3组件可以改善这问题,可惜待推出至Flash Player 8.5普及,还有一段长时间,远水不能救近火。不过,这些基本界面组件,HTML已经有,由于它们是HTML天生原素,在Browser里支持十分好,反应快,又支持Tab Focus和键盘。
二、两边不讨好界面制作过程
在Flash Timeline以Drag-n-Drop组件的方式制作界面,还是在Dreamweaver里也是以可视化的方式制作界面,不过同样容易地以纯文字方式去调节来得方便和快速?(Flex Builder也是可视化+文字化,不过高贵Flex根本不是一般开发者用)。程序员怎样选择?对于美工,他们想自订界面外观,Flash v2 Component/Flex的方式,他们可以参与多深入呢?HTML+CSS方式修改是否最简单快捷方便?
当重要界面组件被商业企业Adobe以谋利方式控制着时,我们是否应该考虑更讨好,免费、标准和广大Browser支持的HTML Form Element呢?
三、难以容入的团队开发
FLA难以整合到CVS,MXML只有干看,没有钱用,没有文字化Flash应用开发方式,不能纯用自己喜欢的Editor开发,SWF Compiler遥遥无期,MTASC自我放弃。Flash应用开发成本比HTML贵很多,单是等Flash MMC Compile的时间已经浪费了一个人生(见用MTASC可以生仔)。
四、根本没有所谓桌面软件操作经验和需要
Flash喜欢说可以有桌面软件操作经验的RIA,即是有Drap-n-Drop。大部分B/S应用,刚才已经指出了,是一个资料输入的Form而已,有需要什么创新的Drag-n-Drop操作方法吗?
五、应用程序需要页面无刷新
所有应用程序开发者都很怕使用者按Back Button,因为容易产生数据不完整错误,也讨厌Reload这Button,容易产生数据重复问题。从C/S走过来,应用程序从来不需要Back和Reload Button。因此页面无刷新是对开发者很重要功能,也是Flash当初卖点。
六、Cross Platform和Cross Browser
应用程序以Web Based来部署,B/S广泛代替C/S,原因是Internet/Intranet和Browser是一个广泛和容易部署的应用程序平台。不过,因为广泛,所以有Cross Platform和Cross Browser问题,Flash冒起正正因为它真的可以Write Once, Run Anywhere。
第五、六点不是Flash缺点,而是提出来因为这两个Flash独特优点,正正被Ajax代替。第五、六点其实是Web Based Application开发者很需要,因此当Ajax出现时,立即引起轰动!为什么他们却无视Flash存在?Ajax冒出,除了以上技术上优势外,还有多家著名Web 2.0概念的网站都是用Ajax,变成了Web 2.0概念中都包含Ajax,可怜Flash要拚命跻身入去(Mike Chambers和Kevin Lynch说法),说服世人Flash也是Web 2.0一分子。
小结
HTML Form Element和HTML文字/图文列表处理能力,纯文字开发过程、XMLHttpRequest提供无刷新数据交换,Cross Platform和Cross Browser,所有Web Based Application开发需要的东西,Ajax都比Flash好,Flash有何优势,难道以为那些Expressiveness和Transitions Effect来骗骗门外汉?应用程序贵乎实用而非花巧,当使用者每天都使用程序时,还要他们浪费时间等Flash用Transitions Effect将一张Form旋转放大Fade In出来吗?
邪恶的Adobe
封闭收费 vs 公开免费
当完成合并那天的FAQ提到要将Flash Player和PDF合并,Flash社群震撼是如何大!这要Adobe方面漏夜修正FAQ字眼,Mike Chambers等走出来澄清。我想人们应该要明白Flash无论多de facto standard都好,始终是控制在一家牟利的商业企业里,人家要给你劣质Component,卖你1.2万美元Flex,你是没办法的。同样道理,因为公开、免费、标准的技术大凑合Ajax会被人重视,原因在此(见Open Source Action Items中Aral Balkan意见)。开发者不可以将自己将来、前途和钱途寄托在单一公司、单一封闭技术里。
Flash是二线产品
我对Adobe吞并Macromedia感觉,如香港回归大陆一样,虽然有强劲经济靠山,但香港独特国际优势会逐步被大陆化而变成中国一个沿海普通城市。Flash现在只不过沦为Adobe里一个二线产品,Adobe可以继续放主力在她赚钱的Documentation和PDF业务、Flash和那可能赚大钱的Flash Mobile远景,Adobe会重视吗(见Adobe Faces Tough Choices)?香港不再生金蛋,Flash也不再闪烁!
Macromedia精神不再
况且,我从来不认为Flash Mobile会成功(1,2)。Macromedia精神和Vision究竟有多少能够再延续在Adobe里?虽然有五位Macromedia高层入了Adobe管理层,但有实权吗?Stephen A. Elop所谓President, Worldwide Field Operations,看来有虚名没有实权,新安插出来职位?Adobe虽然接收了Macromedia的员工,但多少会长期留下,我知道一些高层合并过程中已经离开,Flash开发团队的精英会否一年半载后意兴阑珊而离开或另起炉灶?(如Macromedia买了RoboHelp后,RoboHelp员工拉队离开1,2)
Adobe得不到Macromedia开发社团信任,虽然她已经发公开信保证,但各MMUG将准备以行动证明拒绝Adobe化决心(见LondonMMUG、CPMMUG和香港MMUG)。
最后总结
Flash最适合多媒体的行销网站运用,其它方面,它正是腹背受敌中,视觉实验可以玩Processing,应用程序可以考虑Ajax。我建议所有热爱Flash的RIA Developer,2006年应该将目光多投向Ajax,因为同样是ECMAScript,同样是XML Parsing,非常容易学。我们Flash Developer有5年时间,从过去错误经验成长,如果将这些经验知识运用到Ajax上,一定能找到我们自己的优势的。
最后,我不是今天的我打倒昨天的我,我曾经对Ajax作出批判,但了解过我的工作背景:我是由钻研DHTML讨厌Flash到开始转玩Flash的;长期关心本站的朋友都知道,我是一个关心Client-side技术发展的人(1,2,3,4)。所以,任何对改善使用者经验、改善开发者工作的有价值技术,我们都不能放过。
全民2.0
上次去烈士公园发现一个死角从没去过




