Oracle 以往主要关注企业级软件,这使人们误以为 Oracle 在很大程度上忽略了 Java 客户端软件。然而在今年的 JavaOne 大会上,Oracle 明确表示他们正在重新推动桌面端的开发,主要代表就是 JavaFX 。而且 JavaFX 也将通过 OpenJDK 使整个 JavaFX 平台开源。
其实 JavaFX 早在 2008 年就已经提出来了,然而只获得了有限的推动。因为很多开发者抱怨,在使用这种 GUI 开发框架的时候,他们不得不学习一种新的编程语言( JavaFX Script )。在去年的 JavaOne 大会上,Oracle 宣布,JavaFX 2.0 将摒弃 JavaFX Script,代替它的是一套完全基于 Java 的 API。JavaFX 2.0 基于上述说法发布,这意味着开发者可使用任何基于 JVM 的编程语言(Java、Clojure、 Scala、Groovy 等等)和在 JVM 运行的任何平台来开发 JavaFX 应用程序。这种改变同时带来一些新特性,像基于 XML 的 UI 表述语言( FXML ),并且支持包括微软的 Kinect 在内等新设备。
为了帮助开发者们更好地使用 FXML 语言,Oracle 正在开发一套图形编辑器—— JavaFX Scene Builder ,且已在大会上展示过。该编辑器是一款独立的编译工具,并将集成在 NetBeans 中。目前它还只处于内部的 beta 版,预计公共版本最早会在 2012 年与大家见面。
同时,Oracle 关注 HTML5 和 JavaScript。JavaFX 2.0 让我们可以在 JavaFX 应用程序中嵌入 HTML5 的内容,这些内容会通过 WebKit 渲染。在 JavaOne 大会上,Oracle 还宣布了另一项名叫 Avatar 的工程,它的主要任务是:让基于 HTML5 UIs 的混合应用程序,无论是在数据中心还是云里,都可以共享 Java 客户端和 Java EE 服务器上的内容。
与此同时,Oracle 将在一定程度上继续支持 Swing。很明显,Oracle 相信,JavaFX 将是构建 Java UI 应用程序的最好途径,因为在 InfoQ 参与和组织的各种相关会议中,人们都表现出对 JavaFX 极大的兴趣。然而作为 GUI 开发系统,无论 JavaFX 怎么好,如果不能在期望的目标设备上运行,那么就毫无意义。
在移动开发领域,这个问题尤为突出。Java ME 是 Sun 和移动电话设备之类平台的成功先驱者,然而 Java ME 技术在近些年来一直徘徊不前。正在进行中的相关研究也被基于 Java 的、在 QNX real-time OS 系统上运行的黑莓(BlackBerry)所替代;Nokia 所依赖的 Java ME 也正因向 Windows Mobile 平台转变而面临褪色,甚至基于 Java 的 Android 平台也在使用非标准化的 Java 实现。
前景可期, 在今年的 JavaOne 大会上,Oracle 宣布了“统一 Java ME 和最新版本的 Java SE”的计划。这个聚合的平台具有重大意义,因为各种相关技术,例如 JavaFX,将会在更多的设备上使用。在与 Oracle 融合中间件团队中的客户端开发副主席 Nandini Ramani 的一次交流中,她说她可以让同一款 JavaFX 游戏既运行在 Android 平板电脑上,又运行在 iPad 上——这会受到大家的热烈欢迎。然而这并不意味苹果公司终于后悔了,并让 JVM 运行在 iOS 系统中。这个实例只是说明这样的理念:并不是要求每个人在启动程序中连接私有的 JVM 资源,而只是证明了存在这样的可能性。在后来的一次交谈中,Ramani 证实,是否在实践中应用运行这种技术,Oracle 不会与苹果公司再进行讨论。她同时指出,这已有先例,例如苹果为了规避类似的限制,已经允许相同的技术在 OS X app store 和 Cyberduck 使用,而且他们确实这么做了。
Oracle 同时注重 JavaFX 在更多的桌面操作系统使用,预期明年发布在 OS X 和 Linux 操作系统上运行的 GA 版本。在 2013 年,Java 8 SDK 版本将会包含 JavaFX 3(可能在各种平台上运行)产品。届时,Oracle 会通过 JCP 对该项技术实施标准化。
最后,在 2010 年苹果公司宣布放弃自己的 Java 实现平台后,目前 Oracle 已经拥有可在 Mac OS X 平台上用的 JDK 7 预览版本,预计将于 2012 年发布 GA 版本。
评论