首页 / 软件开发 / Flex / JavaFX,Flex和Silverlight横向对比
JavaFX,Flex和Silverlight横向对比2010-11-23 译言 mentatFlex, JavaFX, Silverlight…坦白来说,在开发这个应用期 间,我在内心一直在比较用JavaFX做与用Adobe Flex做同样的事情。简 单说来,在今天,Flex比JavaFX高效得多。但我们得记住我们是在用Flex版本3 与JavaFX版本1进行对比。如果你了解如何开发Swing应用,你可能就会宁愿继续 用Swing,而不是使用我们在这个Pet Store版本中手工创建的JavaFX 1.0包装类 。JavaFX 1.0 最大问题是它不包括任何用于WEB开发的用户界面组件。连简单的超链接组件都没有,更不用说数据网络或者树列表组件。我认为这没有 其他原因,只能归咎于Sun公司在开发此新用户界面工具时只投入了太少的时间 与有限的人力资源。幸运的是,Sun即将发布JavaFX2.0 版本,它带有完 整的用户界面组件、容器、导航条和布局控制。微软仅仅只为宣布自己做出与 相似产品,就在2007年发布了功能不全的 Silverlight1.0,直到一年后,全 功能的Silverlight2.0才可用。好消息是Java开发者已经开始建造他们自己的开 放源码组件库:Jfxtras。另一方面,我看到一些功能失于Flex而收于 JavaFX。例如,ActionScript不支持多线程。这在与远程站点通讯时不 成其问题-所有的远程调用都是同步的,并且使用回调机制把服务器数据流传送 到客户机。但是,如果你需要写或者使用一个执行在客户端的CPU密集计算Java 库时,我认为Java就会胜过ActionScript。两种语言的语法相当接近(见 http://flexblog.faratasystems.com/?p=115)。JavaFX支持eval()函 数,可以在运行过程中编译并执行一小段代码。Flex并不支持这一功能。数据双向绑定已在JavaFX实现,但Flex预计到版本4才支持。我 见过一些对于Flex与JavaFX 网络协议的基准测试。最近的测试只是提供了客户 机与服务器间的XML和REST数据交换。当然,你能编写Java套接字或者包装一个 RMI客户到 JavaFX,这会比ActionScript实时消息协议快吗?我们不知道。或者 你能在JAVA Applet和服务器端Java字符流间用HTTP通道通讯。这会比使用AMF, 一种基于HTTP的二进制协议快吗?我们也不知道。在开发移动应用时 JavaFX 消除了许多复杂性。它承诺可以不用Java SE开发桌面应用,可以不需要 用Java ME开发移动应用—JavaFX就是你的唯一需要的解决方案。JavaFX移 动开发提供了硬件加速。记住,Java在移动设备中已经有26亿的装机 量!Java 在这一领域对Flash Lite有绝对优势。JavaFX1.1快要发布(编者注:该 版本已于09年2月17日发布)。它在移动领域执行更快,bug更少,功能更多,但 在桌面平台上没有什么主要更新。我明白这不是要求大量现金注入的好时机,但是,如果Sun微系统公司的管理 者不能找到一条在未来JavaFX版本上双倍扩大基于此平台应用开发团队的方式, 整个Adoble Flex团队就能在这一年期内安全地发展起来。因此,如果投入太少 ,JavaFX就要尽早开放源码。文章来源:本文节选自mentat翻译的Pet Store with JavaFX 1.0. Part 1 (http://www.insideria.com/2009/02/pet-store-with-javafx-10-part.html). by Yakov Fain