三种主流RIA技术之争,你该如何选型?

  前几天听说Adobe发布了用于Flash Player的RTMP(实时消息协议)。乍一看,好像是一个不错的东东。号称有如下优点:支持高性能地把数据(主要是音频、视频)PUSH给Flash Player;支持over HTTP和HTTPS。再联想到最近1-2年,微软在Silverlight上也是频频出击。而Sun也不甘寂寞,搞出了一个JavaFX(2个月前刚发布)。看来RIA领域的竞争有白热化的趋势。干脆今天就来八卦一下这三个技术。
  有同学可能会问了,为啥不顺便提一下AJAX捏?主要是因为AJAX和那三个玩意儿有很大的差别,不属于同一个维度,没有可比性(绝没有贬低AJAX的意思)。所以今天暂且抛开不谈(下次如果有空再聊AJAX)。

  ★先说说Flash/Flex
  Flash/Flex早先是由Macromedia搞出来的。Adobe目光独到,在05年把Macromedia吞并了。于是Flash/Flex就成了Adobe的如意法宝。其实当初收购Macromedia的价格并不高,也就34亿美金。这个数字对微软来说是小意思,可惜当初微软真是瞎了眼,没有先下手。否则现在RIA市场的格局就是另外一番景象了。话说回来,Adobe买下Macromedia后,对Flash也是下了大本钱,再加上那几年没有直接的竞争对手。因此到了07年,Flash/Flex已经成为RIA市场的事实标准,当时的PC占有率少说也有70%。而且开始进入手机市场。
  目前Flash/Flex主要的优势一个是用户群大,还有一个是跨平台(包括操作系统、浏览器、移动设备)。
  不过我这2-3年用下来,感觉Flash/Flex也有不少问题。一个主要的问题是语言的兼容性不够好,当初从ActionScript2迁移到 ActionScript3,团队里的人怨声载道(很多代码几乎要重写)。还有一个问题是功能不够强,让人感觉很不爽。比如至今不能够很好地支持多线程(仅支持异步回调);比如不能很好地整合PDF(照理说都是自家公司产品,整合应该不难)。

  ★再说说Silverlight
  估计是到了06年后,微软发觉苗头不对,赶紧下大力气自己搞。在07年底和08年底分别发布了Silverlight 1.0和Silverlight 2.0(3.0据说09年也有望推出)。然后商务层面也接连出手:先是08奥运期间与NBC(美国国家广播公司)合作,用Silverlight进行赛事直播;接着在上个月美国总统就职典礼,也用上了Silverlight。微软的意图非常明显,就是市场方面利用各种机会争夺用户占有率,弥补对Flash的劣势;技术方面不断强化功能,力图甩开Flex,吸引开发人员加入。
  要说Silverlight的优点,我觉得依托于dotNET是主要优势。借着dotNET这个靠山,Silverlight能整合现有的某些语言(据说已能支持JScript、IronPython、IronRuby、VB)和库;还能够方便原有的dotNET程序员上手。Silverlight在功能上也显得比Flex更强大(比如多线程和3D方面)。
  不过依托于dotNET也导致了Silverlight的主要缺点:跨平台不够好。虽说现在有Moonlight的帮忙,但依然不够理想(尤其是对Linux的支持)。

  ★最后顺便提一下JavaFX
  坦白讲,JavaFX实在是乏善可陈。Sun的一个主要失策就在于后知后觉,跟进太慢。微软下手已经慢了,结果Sun比它还慢。而Sun在财力上又比微软差了很多(Sun现在自身难保,根本没法像微软那样烧钱搞推广),做IDE也不如微软拿手。真是天时、地利、人和皆无。难怪连Java社区对它也热情不高(有Java大牛Bruce Eckel的文章"Does Anyone Really Care About Desktop Java?"为证)。

  假如你要开发一个Web系统,打算从上述三种RIA技术中挑选一个。那么你先要评估一下你的Web应用对跨平台的需求如何?如果你需要同时支持各种各样的客户端操作系统和浏览器,那我建议你选择Flex(我的部门现在面临的就是这种情况);反之,如果你铁定只要支持Windows,那我建议你选择Silverlight。至于说JavaFX,短期内就先不要考虑啦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值