Java Champion Stephen Chin 谈 JavaFX 的新特性和新功能

   
作者:Janice J. Heiss  
2011 年 2 月发表

文章索引

Stephen Chin 的照片
Stephen Chin
 

下载:
下载Java FX

本系列访谈聚焦获得业界、学术界、Java 用户群 (JUG) 以及更大社区中 Java 开发人员的特别认可的 Java Champion 个人。

介绍: Java Champion Stephen ChinGXS 公司的首席敏捷方法学家,该公司具有供应链和电子数据交换 (EDI) 市场 20 年的从业经验。在业余时间,他致力于各种 JavaFX 项目,如 JFXtras(一系列针对 JavaFX 语言的实用程序、插件和示例)、Piccolo2D(一个 Java 缩放用户界面 (ZUI) 库)以及 Visage(一个基于 JavaFX Script 构建 UI 的 DSL)。Chin 与 James Weaver、Weiqi Gao 和 Dean Iverson 一起合著了《Pro JavaFX 2 Platform:A Definitive Guide to Script, Desktop, and Mobile RIA with Java Technology》一书。

作为最多产、最具创新力的 JavaFX 开发人员之一,Chin 在 2010 年的 JavaOne 大会上主持了两次技术专题讲座和一次“同行”专题讲座。此前,他在 2009 年 JavaOne 大会上的演讲作为那次大会上评价最高的专题讲座之一使他获得了“Java Rock Star”称号。为了解最新进展,我们就 JavaFX 中快速发展的变化对他进行了跟踪采访。

问:请谈谈您 2010 年 JavaOne 大会专题讲座的情况。

答:我和 Jonathan Giles 演示了如何利用 JRuby、Groovy、Clojure 和 Scala 等替代语言构建 JavaFX 2.0 应用程序。这次演讲的准备工作很有趣,听众的反响也非常不错。在随后的几周内,我们收到了许多关于不同语言实现的极佳反馈,并对后续专题讲座中的演讲进行了完善。在第二个演讲中,我和 Jim Weaver 提供了 2010 版的企业 JavaFX 演讲。我们广泛讨论了企业 JavaFX 开发,并且提炼了对于开发人员很有用的新的 JavaFX 2.0 信息。我们还增加了一些示例来展示新的 JavaFX API 在 Scala 代码中的效果。

JFXtras BOF 受到大家的热烈欢迎,堪称座无虚席。我和 Dean Iverson 谈论了团队一直在致力于开发的一些新的 JFXtras 组件和特性,并宣布了一种新的基于 JavaFX Script 编译器代码库的 UI 领域特定语言,即 Visage。

问:一些人对 JavaOne 大会上关于 JavaFX 的公告感到非常惊讶。您对此有何感想?

答:总的来说,我认为公告表明了 JavaFX 和富客户端 Java 未来一些非常积极的势头,当然也有一些不好的消息。以前对我们来说非常有用的 JavaFX Script 并不包括在未来计划中,但 JavaFX 2.0 中承诺的许多改进都与绑定和序列等 JavaFX Script 语言特性相关联,因此希望可以保持它们的一些好处。JavaFX Mobile 自从 JavaOne 2009 以来一直没有太大的动作,主题演讲中有关移动的焦点都在 Java ME 和 LWUIT 上。

 
“许多地方都令人非常激动 — JavaFX 有一个全新的 API 面孔。所有 JavaFX 2.0 API 都将通过 Java 类提供,从而可以更轻松地集成 Java 服务器和客户端代码。”
 
Stephen Chin
Java Champion

许多地方都令人非常激动 — JavaFX 有一个全新的 API 面孔。所有 JavaFX 2.0 API 都将通过 Java 类提供,从而可以更轻松地集成 Java 服务器和客户端代码。这也大大提高了 JVM 语言与 JavaFX 之间的集成机会,我和 Jonathan Giles 在 JavaOne 专题讲座中探讨了这方面的内容。

Thomas Kurian 宣布了一项继续对 JavaFX 控件开源的战略。这是该平台在正确方向上的一大举措,这将为第三方控件开发人员提供便利。

Oracle 已经发布了一个建议的 2011 JavaFX 2.0 路线图,其中包括一些非常棒的事情,许多都是我一直在奔走呼吁的,如多线程改进、Texture Paint Grid Layout Container + CSS、HD Media、HTML5、WebView 控件、文件和其他对话框。

Visage

问:请跟我们谈谈为填补 JavaFX Script 留下的空缺而创建的新语言项目 Visage

 
“Visage 填补了 JavaFX Script 留下的缺口,它提供了一种静态类型声明性语言并且可通过其丰富的特性简化 UI 开发。”
 
Stephen Chin
Java Champion

答:它是一种领域特定语言,用于编写用户界面,可满足 UI 开发人员的需求。Visage 填补了 JavaFX Script 留下的缺口,它提供了一种静态类型声明性语言并且可通过其丰富的特性简化 UI 开发。

我最钟爱的 Visage 语言特性是用于快速构建场景图的对象文字语法以及用于将 UI 连接至后端模型的绑定关键字。然而,该语言是自上而下专为 UI 开发而设计的,包括通过空安全取消引用来实现无异常代码等精妙细节。

我们向 Visage 添加了一系列新特性,使其更加完善。最先在预览版中推出的两个特性分别是默认属性和空检查取消引用。默认属性让您可以不用改动已经定义默认值的属性标记。例如,如果内容是最常用的子属性,则没有理由要为 Group 和 Container 指定内容。

空检查取消引用与 Groovy Elvis 操作符相反。其使用方法是点号前面加一个感叹号(例如“variable!.property”),并且会在操作数为空时强制取消引用抛出 NPE。

所有这些工作都是基于 GPL’ed JavaFX Script 编译器代码库以开源形式完成的,我们正在寻找志愿者来帮助实现 JavaFX 2.0 集成。

JavaFX 1.3 中的新功能

问:我们回顾一下,请谈谈 JavaFX 1.3 中的功能。

答:从幕后来看,JavaFX 1.3 是一个有很多改进的版本,其改进之处超过了大多数人的认识。新控件、布局改进和新 TV 模拟器这些明显的 API 改动仅仅是冰山一角。实际价值在于幕后的改动,例如编译器重写、新场景图实现 (Prism) 和增强的 CSS 支持。平台中的这些重大改进可提升已有应用程序的运行速度和可靠性,并可为未来版本中引人注目的新功能铺平道路。

Apropos — Agile Product Portfolio Scheduler

问:您在五月份推出了一款全新的用于产品组合规划的 JavaFX 工具 —“Apropos”。对于这个工具,开发人员应了解哪些相关信息,这个工具的发展方向如何?

答:Apropos 是 Agile Product Portfolio Scheduler 的简称,旨在帮助公司通过产品规划在整个组织内进行大规模的敏捷开发。我在 Lean Software and Systems 大会上与他人共同介绍的产品组合看板 (Product Portfolio Kanban) 等 Apropos 概念都是最前沿的敏捷实践。该工具采用最新的 JavaFX 和 JFXtras 特性(从动态图表到灵活数据网格)构建。Apropos 受到了广泛关注,业界最大的敏捷生命周期工具供应商 Rally Software 已决定依托它来实现路线图规划工具。该公司在 Agile 2010 大会上推出了 Rally 品牌版本的 Apropos,即 Stratus。

问:对于 JavaFX 的未来,您有哪些感到兴奋之处?

答:我非常高兴地看到 JavaFX 核心团队将为 JavaFX 2.0 版本推出的新特性。他们有很大的机会重新开始并纠正早期 JavaFX 版本中的错误。另外,其使用群体将扩大,因为用户可使用纯 Java API 进行编程(或者像我和 Jonathan 展示的那样,几乎任何 JVM 语言)。

Pro JavaFX Platform

问:您与 Jim Weaver、Weiqi Gao 和 Dean Iverson 合著了《Pro JavaFX 2 Platform:A Definitive Guide to Script, Desktop, and Mobile RIA with Java Technology》一书。我知道您正在写续作 — 请谈谈相关情况。

答:编写《Pro JavaFX Platform》非常有趣,该书获得了来自读者和 JavaFX 专家的大量积极反馈。续作的目标是对内容进行完全翻新,使用最新的 JavaFX 技术进步来教授和演示该平台的潜力。我们计划与 JavaFX 的下一个主要版本一同发布该书。

Piccolo2D — 缩放用户界面库

问:请跟我们谈谈 Piccolo2D。

答:Piccolo2D 是由美国马里兰大学的 Piccolo 原班人马提供支持的开源项目。之所以开始这一项目,是因为 Piccolo 框架的一些用户对马里兰的团队说:“你们拥有这项伟大的技术,但并未积极发展该技术。让我们来帮助你们将这项技术推广到更大的社区,然后帮助你们进行修复和改进以维持项目的活力,如何?”

大多数人可能不知道,在 JavaFX 的初始解释版本中,Piccolo 实际上用作底层场景图。Piccolo 是一种二维场景图,尤其适合创建平移和缩放用户界面,类似于我们在 Google Maps 中看到的效果。有时,您可以添加像缩放栏这种好像粘在镜头上的控件,或者使用一些小部件来开启和关闭交通状况。

该技术还有许多类似的应用,例如可视化图形和创建演示软件,您可以实现平滑过渡以及浏览复杂的照片库。

实际上,Piccolo 项目的参与人员已经创建了一款名为 Photo Mesa 的照片浏览软件,它是您计算机上完全缩放驱动的照片管理器。在开始 JavaFX 方面的工作之前,我的主要工作是在 Piccolo2D 上。自从忙于 JavaFX 之后,我就很少参与该项目了。

另请参阅

Stephen Chin 的博客
硅谷 JavaFX 用户群
JavaFX
Java.Net
Visage
Java Champion
Java Rock Star
Piccolo2D