您的位置:首页技术文章
文章详情页

JavaFX预览版弱点明显 恐难扭转Sun劣势

【字号: 日期:2024-03-04 14:12:30浏览:9作者:猪猪

无论是在传统的桌面应用领域,还是在如今的新兴浏览器应用领域,Sun公司都面临着来自对手的强大竞争。不过,Sun公司也在想尽办法重现昔日辉煌,近日Sun公司发布了JavaFX预览版开发工具包,人们称这是Sun扭转劣势的最后一个王牌,但是根据这个预览版工具的表现来看,显然还难当大任。

对于JavaFX来说,最大的问题是凭借什么让人们来接受它,毕竟人们现在已经拥有了Adobe公司的Flex和微软的Silverlight,而后者在2008北京奥运会中已经向人们展示了它的优秀。

从理论上来说,JavaFX最具竞争力的功能恰恰是Sun最难放弃的一块领土:无需改变即可在Java SE和Java ME平台上运行同一个JavaFX应用。

效仿Laszlo实现多平台支持

为了实现这个功能,Sun正在采取一种类似Laszlo项目的方法。Laszlo允许相同的程序可以同时运行在使用JavaScript技术或Flash技术的浏览器中。JavaFX可以分为JavaFX Script和JavaFX Mobile两部分,分别用户实现在不同平台上的JavaFX应用。例如,Java SE平台使用Swing组件来实现图形呈现。

如果相同的JavaFX应用无需改变就可同时运行在你的手机和桌面计算机上,这无疑是Sun真正的一个突破。

至于这种虚假的多平台实现方法从长期角度来看是否可行,那是另一回事。任何一个大型的程序必将不属于JavaFX,它们一般会选择使用核心的Swing和Java API,锁定在你的桌面应用中。在Java ME支持出现以前,我们不会发现Sun的雄心壮志能实现多少,而Java FX的支持估计最早也要到明年春天。

开发工具的改进和不足

对于这个预览版,工具依然是JavaFX优缺点并存的一部分。具有JavaFX插件支持的NetBeans 6.1,再加上Java 6;update;10,Sun为开发者提供了非常有竞争力的富客户端应用开发和部署平台。

NetBeans插件具有一个漂亮的即时预览功能,任何代码改变都可以让applet重新编译和重新显示。这个功能虽然看起来不错,但是我认为大多数开发者在新鲜感过去后会关掉这功能。

JavaFX预览版中在工具方面存在的不足是,在明年春天以前还没有图形编辑器供开发者可用,这很可能成为开发者在Flex和JavaFX之间做出选择的决定性因素。

除了NetBeans可视化开发工具外,Sun公司表示它正在与第三方紧密合作,以提供一个快速应用开发(RAD)工具,显然我们还能具有一个Eclipse插件,至于具体的发布时间我还没有从Sun哪儿得到答案。对于未来要增加的功能遮遮掩掩,这显然不是赢得开发者之心的好办法。

相形见绌的demo

在预览版中新增的还包括一个天气应用的示例:很高兴JavaFX终于开始关注这部分内容。但是不幸的是这个示例有些让人失望,只是一些数字与几个云形动画的拼凑而成,如果你让这个程序运行几分钟以后,你会发现它还会变得像蜗牛一样慢。而且“今天/明天”天气的切换操作也有点问题。

图1、JavaFX示例

网上看到的其它演示也同样不能令人眼前一亮。javafx.com网站本身的设计就比较差劲,显然这个网站并未遵循可用性原则而设计。在找它的演示页面的时候我就废了半天劲,最后找到了这个右边灰色背景灰色文本的链接。

费劲力气找到这个链接后,展现在你眼前的不过是两个最不起眼的演示程序。第一个范例就是简单的让一些方框实现旋转,这种东西Flash很多年前就可以做了。第二个demo是股票价格程序,看上去有些意思,但是经过使用你会发现它只是一些静态的图和令人讨厌的白色背景的组合,在使用之前我曾经期望里面的表格可以进行分类,或者表格的列可以实现拖拽,但是这些都没有,仅仅是一个简单的表。

你把它与Adobe的Flex 3 的Dashboard相比一下的话,你会迅速发现Sun的处境真的非常危险。

Flex在与浏览器的集成方面也已经领先一步。人们对早期的Java applet的主要批评之一是它们不能与所在的页面非常好的融合。一个改变了视觉风格(字体、线条粗细、颜色等)的Web设计器可以对样式表进行修改,但是applet依然看上去和以前一样,依然要求重新编程、重新编译和重新部署。

很明显的答案是为Swing增加对外部样式的支持,这是Flex所采取的方式。由此带来的结果是非常显著的,这会把应用程序外观控制权交到Web开发者的手中。

我曾经问过Sun负责JavaFX的高级产品经理Jacob Lehrbaum,将来是否会在JavaFX中增加对样式表(stylesheet)的支持。尽管他看上去真的希望给我一个肯定的答案,但是至今为止未能实现。在这一点上与Sun在JavaFX上所做的工作很相似:看上去潜力很大,但却总是只许下一些美好的承诺,而不去在现在来兑现。

客观评价

OK,让我们宽容一点。这只是一个测试版,而且demo仅仅是demo。我们希望正式版要好很多。JavaFX可以而且一定会表现的更好,因为它有机会让应用程序无需改变就可以同时运行在桌面和手机上。

但是,根据迄今为止我所看到的,JavaFX目前还不足以在竞争中胜出,它还有很长的路要走。在拥有自己的GUI编辑器以前,JavaFX不是一个可行的选择。我们希望Sun和JavaFX应该开始加速实现这一功能。

标签: Java
相关文章: