技术开发 频道

客户端Java的革命性飞跃

  JFXtras是一套针对 JavaFX脚本开发者的附加组件和工具,其主要开发者Stephen Chin谈论了JFXtras项目以及整个JavaFX项目相关的信息。

  Q:你最喜欢JavaFX的什么地方?在未来的JavaFX SDK版本中,你最希望看到什么改进?

  Sephen Chin:我不得不说,JavaFX让我迷上了使用绑定方法。现在我已经很难再回到以前那种事件监听和使用get/set方法的编程方式。

  在功能改进方面,我希望Sun能够对JavaFX进行如下改进:

  ·JavaFX API源代码:

  ·在Java中嵌入JavaFX:如果有全面的支持机制能够在Java中嵌入JavaFX将更加强大。除了为现有Swing应用提供移植路径外,这将为JavaFX的进一步高级应用提供众多可能。

  ·Web 2.0集成:Web上有大量可用的服务及技术, JavaFX的采用将从中受益。正如我先前提到的,对Flash和Flex的内建支持将帮助与地图服务的集成,比方说Google Map。JavaFX桥接当前开发社区所使用技术的能力越强,将来JavaFX平台就越成功。

  Q:你能描述一下JFXtras项目所带来的好处吗?

  Stephen Chin:JFXtras是JavaFX社区为自己编写的一个项目。Sun一直在为推动JavaFX技术进行着优秀的工作。而在JFXtras项目中,我们则专注于填补所有小的漏洞和差距,以使其更适合开发真实的应用程序。

  如果你把JavaFX Script看作开发Java RIA应用的基础,那么JFXtras则是开发全功能产品的有益和必要的辅助工具。JFXtras中的所有组件都有详细的文档,都经过详细测试。

  Q:计划对JFXtras增加什么新功能吗?

  Stephen Chin:由于JavaFX 1.0版刚刚发布一个多月,JFXtras 0.1版具有一个灵活的Grid布局、Java Dialog支持、一个异步Woker类、一个声明式单元测试框架和众多小改进。

  尽管0.2版内容还未最后确定,除了在Grid和单元测试方面的改进外,我们还规划了一些重大的新特性。Groovy GraphicsBuilder的Andres Almiray已经加入了我们团队并把他的jSilhouette图形库移植到JFXtras项目,它将提供了很多漂亮的图形基本元素,如十字形、星形、球形以及Reuleaux 三角形(crosses、stars、balloons、Reuleaux triangle)。我们还将拥有JavaFX的首个图表工具,提供由Ben Jone编写的很酷的JavaFX饼图组件,最近在Jim Weaver的blog上提到了这一特性。

  备注:根据Jim Weaver的最新博客文章称,JFXtras 0.2版目前已经开始提供下载。

  轻量级用户界面工具包(LWUIT)

  LWUIT的到来,让移动设备开发者兴奋不已,它是受限配置设备用户界面 (limited Configuration Device UI,lcdui) 的继任者,提供了一个更加复杂的API,让你可以充分利用类似Swing的功能,来为移动应用创建用户界面,它提供了大量的小部件、主题和动画转换等功能。

  NetBeans 6.1和6.5

  Sun NetBeans IDE的许多用户把这两个新版本都当作一次大事件看待。4月份NetBeans 6.1发布,包含了很多新重大功能。Sun后来使用6.1版来运行预览版JavaFX插件。大约11月中旬Sun又发布了NetBeans 6.5。其新增的重要功能包括支持Groovy。你可以更轻松、更快速的创建纯Groovy代码或混合使用Groovy和Java代码的客户端应用。另外,Sun还集成了JavaFX 1.0到NetBeans 6.5中。

  Sun公司NetBeans专家Tim Boudreau谈论了NetBeans 6.5中他认为最重要的新功能,以及NetBeans的未来。

  Q:你认为NetBeans 6.5中最重要的新功能是什么?

  Tim Boudreau:NetBeans 6.5的新功能有很多,不过我最喜欢的应该是我可以更少的键入代码来实现我的目的。

  另外Boudreau还提到了NetBeans 6.5对非Java编程语言开发的支持,例如对PHP、HTML、JavaScript、Ruby和Python的支持。

  Q:2009年新版NetBeans将何时推出?它将包含什么新功能?

  Tim Boudreau:体验新功能最好的办法就是下载一个development build 版本!有两个功能值得大家期待:

  ·自动创建项目:这个插件将把任何具有一个创建脚本的目录看作一个项目,无需任何设置,就可以分析该创建脚本,设定你的classpath、完成代码等。现在用户就可以下载该插件,并立即对其进行体验。

  ·即编译即保存。许多开发者要求增加这个功能,不过实际上创建这个功能却比较复杂,因为在其项目架构中它使用的是Apache Ant。在NetBeans 7中,有望包含该功能,它有望节省重编译的时间。

  在NetBeans 7.0还将包含大量改变,它新增支持的语言将会更多。通过微博客Twitter可以及时了解这些最新功能。

  JVM语言峰会

  通过2008JVM语言峰会我们可以看到,Java正在变为一个以平台为中心的技术,而不仅仅是一门编程语言。尽管许多人担忧Java语言的发展速度越来越慢,但JVM本身却正在经历一场革新。

  在2008年1月,Sun启动了Da Vinci Machine项目,又被人们称为多语言虚拟机。这个项目的目的是引入一个有效支持动态类型语言的JVM,其中包括对JVM指令invokedynamic的支持。

  由于Da Vinci需要来自动态语言社区的支持来帮助其开发,来自Sun的JVM工程师在9月份举行了为期3天的JVM语言峰会。峰会首日首席工程师Mark Reinhold表示,从JDK 7开始,invokedynamic将成为JVM的一部分。

  从这次大会上,Sun工程师收集到了大量JVM功能修改请求。鉴于这次峰会的成功,在2009年Sun有可能继续举办该会议。

  Swing、SwingX和JavaFX

  对于众多Swing/SwingX开发者来说,2008年是令人不愉快的一年。这个阵营的开发者不满意Sun公司将重点放在JavaFX上,认为这伤害了Swing的进一步开发。他们对Sun公司的停止继续投资SwingX项目感到非常愤怒。

  Kirill Grouchnikov曾经写了一篇题为“Sun正在放弃核心Swing”的博客,近日他再次阐述了他的观点。

  Q:在您的博客中写到:“在Sun内部,核心Swing正在作为一种UI的技术遗产而逐步退休。”你是否暗示Sun对Swing没有未来规划?自从你发布该博客上,是否有所变化?

  Kirill Grouchnikov:在客户端Java技术的近期和长期计划方面,Sun公司一直非常不透明,与外界缺乏交流,这与其所宣称的开放原则是背道而驰的,当然JavaFX是一个例外。我认为,在过去的一年半中,Sun将过多的精力放在了JavaFX上,已经影响了Swing的开发。

  自从我发布该博客以来,Sun暗示在JDK 7中将可能包含新的Swing模块,但我现在更对此持怀疑态度,观望其能否成为事实。JavaFX还远未达到Sun公司的预期,因此它将在2009年继续投入大量人力来完善它,2010年也将如此。

  Q:你的博客中还表示,“Sun已经停止了对SwingX项目的资助。”这将对SwingX项目的继续开发带来什么影响?

  Kirill Grouchnikov:SwingLabs诞生于2004年,已经为Java客户社区带来了众多成果。由于Sun停止资助SwingX项目,其开发的进度将会非常慢,众多SwingX的开发工作将被放到社区志愿者手中。尽管他们的工作也非常重要,但是如果经过四年的开发还没有发布1.0版,这很难让商业公司有兴趣使用SwingX进行开发。

  其它:OpenJDK、Ganymede和桌面应用

  Sun公司在JavaOne 2006大会上宣布Java将被开源,随后OpenJDK项目诞生,该项目正在创建一个开源版的JDK 7。在2008年OpenJDK经历了一些具有里程碑意义的事件。一个完全开源的JDK 6被绑定在Fedora 9 Linux版本中。另外一个更重要的发展是,OpenJDK接受了来自Roman Kennke所提交的代码,这是OpenJDK首次接受来自非Sun员工的代码。

  在Sun忙于研发NetBeans的同时,Eclipse基金会也加大了其竞争IDE工具的研发,该基金会发布了Eclipse Ganymede,其包含Eclipse平台3.4版和23个项目。另一件比较有意思的事情是,在去年3月份的EclipseCon大会上,微软的Sam Ramji宣布微软将开始与Eclipse基金会合作。

  2008年,其它Java社区的成员也在忙于发布客户端Java产品。例如,Michael Kölling在9月份为NetBeans 6.1推出了一个BlueJ插件,在10月份则推出了BlueJ 2.5.0。

0
相关文章