[AIR]Adobe AIR和他的对手们

本来很久之前就想写一篇这样的文章,但是一直没有时间,今天在“机缘巧合”下,就把把这篇文章成稿了:)
自从Adobe AIR在08年露出端倪以后,Adobe的野心也就“昭然若揭”了,正如我在08年,应RIAMeeting邀请,做了一篇关于Adobe AIR的演讲上面说的那样,Adobe不安心、也不甘心做浏览器的“第一公民”,而是要做操作系统的第一公民,因此Adobe AIR应运而生。

而本篇文章不是悉数Adobe AIR的,而是想说一下他的对手们。既然说到对手,就要先来说一下Adobe AIR的特性。总结如下:

1、离线处理功能(可以利用SQLLite进行离线处理)
2、Flex → AIR,几乎可以无缝转换的特征。
3、无需浏览器而单独运行。

okay,上面几点就是Adobe AIR的一些比较显著的特质了,那么我们再说一下Adobe AIR的对手们。

1、Silverlight 3.0版本
      “据说”(已经被证实)在这个3.0版本里面增加了“OUT OF BROWSER”功能,即可以“让用户将他们喜欢的SILVERLIGHT程序直接放到他们的桌面或开始菜单中,而不用去下载任何运行环境和打开浏览器程序”。
       也就是说,第三版的Silverlight已经具有了Adobe AIR的第三个特性。同样,也具有第二个特性,但是惟独在这个版本中没有集成Adobe AIR的第一个特性。

结论:无须质疑,在Silverlight 3.0与Adobe AIR的“对局”中已经败下阵来。

2、Ajax
      如果要说RIA的话,除了Flex外,就要数Ajax的资格老了,不仅他的资格老,而且内容也“老”,“无非就是”JavaScript而已:)但是千万不要小看这个JavaScript,在TIOBE程式語言最新排名-2009年5月版的排行版上,也是前十名的选手(要知道ActionScript 3.0的排行才是区区23名而已)
      如果要比较一下Ajax的话,我想与AIR是没有办法相比了,因为Ajax虽然属于RIA范畴,但是他的对手也仅仅是Flex、或者说是Silverlight 3.0以上的版本(不包含3.0版本)。

结论:还未比较就败下阵来。但是大家千万不要觉得JavaScript就无法与Adobe AIR相提并论了,其他他的实力还是蛮强大的,这点我会在下面的内容中陈述的。

3、JavaFX
      自从Sun推出了自己的RIA概念的编程语言:JavaFX,Kenshin认为RIA这个圈是越来越好玩了,相继Adobe、Microsoft、Oracle都纷纷加入这个战团。这样才真的有意思嘛,否则就Adobe自己玩,想玩都玩不大。
      Sun的JavaFX,有他先天的优势 - Java,别忘记虽然Java的霸主地位被一再的侵蚀,但是“瘦死的骆驼比马大”,更何况他还没有“死”,在TIOBE程式語言最新排名-2009年5月版的排行版上仍然是一副老大的嘴脸。现在到了Oracle手里,我希望Oracle给可以赋予Java、赋予JavaFX更强大的战斗力。

总结:但是JavaFX现在还它弱小了,因此JavaFX最大的竞争对手是FlexAjaxSilverlight 3.0以上版本,他连AIR的边都没靠,估计就得“挂”了:)不过我倒是认为JavaFX就从Sun对他的命名上面,就可以知道,Sun不会再犯JSP时代的错误了。

以上就是Adobe AIR正统的对手们,通过一些了解可以得知,除了“犹抱琵琶半遮面”的Silverlight 3.0似乎可以与之抗衡一下,其他诸如AjaxJavaFX均不在一个数量级上,充其量就能与Flex“过过招”,但基本上也是完败与Flex的。

那么说完了“正统”的对手,让我们在来看一下,“明修栈道暗渡陈仓”的Adobe AIR的非正统的对手们。

1、Prism(三棱镜)
      说到Prism,估计没有太多的人认识他,同时说到Mozilla,相比也没有太多的人了解,但是说到“鼎鼎大名”的FireFox(中文名:火狐),估计就是无人不知,无人不晓的了。而Prism正是系出名门(Mozilla)旗下FireFox的“同门小师弟”。
      但是PrismAdobe AIR有什么关系吗?
      其实道理很简单,Adobe AIR的特性我已经在上面叙述了,但是在这里再总结一下:
      可以将web Application无缝等转移到桌面上面,同时具有desk Application的一些特征:可以使用OS API、不依赖于浏览器等等。
      说完了Adobe AIR的特征,让我们来了解一下Prism能做些什么?
      关于Prism的功能,我早在07年的时候(请注意一下这个时间),就在这个博客上面介绍过,详细请看这里:http://www.k-zone.cn/zblog/post/prism.html
      其中关于Prism的定义如下:
      Prism可以将用户在浏览器中的Web程序(例如Google Docs、Google Canlendar等)分离出来,并直接在桌面(Window、Liunx、Mac OS X)上面运行。
      因此Prism在某种意义上说可以约等于AdobeAIR项目和微软的WPF、Silverlight项目,同属与RIA范畴的软件,因此在这一领域将直接面对Adobe和Micosoft的挑战。
      在让我们看一下Prism实际中的运行图:(我分别运行了Gmail、Tasks、Facebook、FriendFeed)在我的桌面上面。

      是不是很“吓人”呢?我可以通过Prism直接将任意web Application 转换为desk Application,而不需要什么Adobe AIRSilverlight的支持。在Prism上面完全符合Adobe AIR这个概念的“核心”特质。为什么说核心特质呢?因为Prism其实只是可以“模拟”web Application上面的运行,而非具有离线功能、操作OS API等功能。

总结:Prism虽然好,虽然在某些程度上“暗度”了一把Adobe AIR,但是还是与Adobe AIR有些较明显的差距。

2、Google Gears
      没错,就是Google Gears(这也是在07年的时候,Google发布的应用程序),这个让浏览器支持离线处理功能的工具。
      关于Google Gears的介绍请看:http://baike.baidu.com/view/1037577.htm 或者 http://code.google.com/intl/zh-CN/apis/gears/ 
      通过以上的介绍可以得知,Google Gears是离线处理的“利器”,泛泛的说,只要是支持Google Gears的网站都具有离线处理功能。例如:Google Reader、WordPress 2.6以上版本等。
      同时,由于Google Gears得益于开放的API政策,因此任何人都可以利用Google Gears API编写自己的离线功能的web Application。
      其实介绍了这么多,就说明一个事情:Google Gears具有Adobe AIR特征中的“离线处理”功能。

总结:Google Gears虽然具有离线处理功能,由于缺乏其他特质,因此依旧不能给Adobe AIR带来直接的威胁,同样在与Adobe AIR的对阵中也败下阵来了。

结果上面的一系列比较,无论是正统的Silverlight 3.0、AjaxJavaFX、还是“旁门左道”的PrismGoogle Gears都不是Adobe AIR的对手。难道Adobe AIR真的可以“笑傲江湖”吗?

其实不然,既然我们单独对决无一胜算,但是我们可以联合起来。假设以下的情况:

1、Google Reader(具有离线功能) + Prism,我想就变成了一个具有离线处理,同时也可以在桌面上运行、不依赖于浏览器的desk Application,而这个desk Application作为一个RSS Reader来说,我想足可以“干掉”目前市面上面所有的desk Application吧?更何况是Adobe AIR版本的Reader(目前尚不清楚是否有这种AIR Reader的存在)

2、Google Gears API + Prism + JavaScript的方式。
       通过以上的组合,我们可以做到给任意web Application加上具有AIR一样的作用,我随便举几个例子来说:FriendFeed、Facebook、Twitter、Delicious等都具有以上的功能,那么将会是多么可怕的事情。
        这样就可以使上面的那几个应用不局限与浏览器、网络而可以单独生存。那么我想Adobe AIR是无论如何也无法做到一些AIR版本的FriendFeed、Facebook、Twitter、Delicious吧?

最后总结一下:
个人猜测,Google GearsPrismJavaScript、甚至于包含HTML 5标准的浏览器、Google Chrome、FireFox都将会是Adobe AIR真正的竞争对手!