最近一段时间,RIA这个术语火的的发烫,原来只有Macromedia一家公司(后来是Adobe)推广的概念,如今微软跳了进来,Sun跳了进来,Open Web的Ajax也跳了进来,百花齐放,很好很好。最近很多论坛和媒体上都发表有RIA技术对比的文章,作者也炒,编辑也炒,浏览者看完也吵,无非就是孰优孰劣的争辩罢了。有人说Flash已经是10多年的技术了,用得人总数多而已,SL,JavaFX出来几年后,一定会怎么怎么样。我看问题未必会这么简单。
我想先给大家打个比喻,希望这个比喻能够恰当。你用右手或者是左手拿筷子吃饭吃了多少年了?我想来看我这篇文章的,至少年龄应该超过18岁了吧,我坚信你从会用筷子这个工具趋于熟练后,一定都是固定在某一只手上。我想没有几个是一三五用左手拿筷子吃饭,二四六换用右手的朋友吧,如果真有,请您别往下看了。好,我们现在用手拿筷子吃饭这一个小话题来剖析一下RIA里面的几种技术。
我坚信会有ActionScript/Flex开发人员随着Silverlight,JavaFX的进化,转去尝试用SL来开发RIA项目,反之亦然。请记住,我这里说的是“开发人员”,你有程序基础,你随时可以从xaml和.net跳转到mxml和actionscript,你也可以轻而一举的从它们跳转到将来的JavaFX上去,归结而言,就是他们无论在RIA生态系统中如何变换位置,他们都归属于“开发领域”。对应到用手拿筷子吃饭的比喻就是,你经常用右手使筷子,如果让你用右手拿个勺或者是叉子,你虽然没有筷子用起来那么爽,但是你仍然能适应(但是你主观仍然愿意用最顺手的,好吧,这就是现在各个厂商疯狂抢占开发人员领域的重要原因),前提是你的右手边上每次吃饭都没有发现有筷子可用,你用勺或者是叉子也就凑合了。这个工具切换的概念是锁定在你一直用右手的前提下。现阶段RIA领域内,Flex是筷子,SL是勺,JavaFX是叉子,将来?就看哪个厂商推广的好,哪个就可能成为新的筷子。
SL一定取代掉Flash和JavaFX,我可以说是扯淡评论,why?请听我来解释,RIA的领域不同于SOA,全部都是跟业务逻辑和服务逻辑打交道,RIA是一个更趋向于“体验”设计的领域,不仅仅包括“开发人员”,还包括“设计人员”,这些设计师又包括UI设计,交互设计,图形设计,色彩设计,特效设计......一大堆五花八门的设计分支,这个分支可不是“开发人员”玩的转的,这个领域是RIA的“左手”领域。现在你手边有筷子,有勺子,有叉子,你用了20年的右手。我给你个选择,别用右手,请用左手使用这些工具吃饭,你肯定跟我急了,我左手总是端碗呢,怎么可能用筷子?好,勺还可以,但是你用了一段时间,发现还是左手端碗,右手随时换筷子和勺更好...好,这也是我想说的。一个设计师,用PS,illustrator,fireworks用了10年,你说现在让换工具(换右手),怎么可能?你说让他换expression,那也就是让他别换左手拿碗了,改用左手拿勺,右手也拿勺(或叉子),也不是不可以,百分百他用了几天(或几分钟)后,说,我还是左手端碗拿馒头吧,您别折腾我了。每个企业都有自己的DNA,Adobe+Macromedia就是设计师和UI领域的DNA,这个公司自打一诞生起血液里的DNA就是这样的,MS一打诞生起就是programming的DNA,当然也有很多人戏称MS的DNA是"Copycat"的DNA.....,你指望用expression Studio去替代设计师手里的PS和AI?Mission Impossible,除非,MS给设计团队一个“左手换用勺子,10年后会比端碗更好”的理由,而且还是设计师愿意相信与坚持的理由。MS做设计工具,就好比说中移动改行做中石油了,这不是有钱没钱的问题,而是这个企业DNA的问题。
吃饭,只有左手和右手搭配好了,才能吃得高兴。RIA项目,只有设计师和开发人员都重视,才能完美。在你发评论前,如果你所处的位置只是ecosystem中的一个环节,请不要着急下定论。