记者:以前的Java程序有两个共同的问题就是启动时间和性能。我相信Prism(图形硬件加速平台)应该有所不同。关于这部分你可以多介绍一些吗?
启动和运行环境性能涉及到很多因素。Prism主要关注后者,意在充分利用最新的图形硬件的优势,以加速场景渲染(还有混合3D内容的能力)。
通过Swing和AWT,事件调度线程同时负责事件调度和渲染。通过Prism,这些任务可以分为不同的线程,使我们能够充分利用现代多核系统,以便于在更短的时间内完成更多的工作。当然,针对不同目标设备也可以是单线程的架构,这是必须的,但是多数现代机器单独的线程会提升帧率。
记者:在Java 7或者Java
8中会有其他有益于JavaFX的具体功能吗?
JavaFX的设计符合在Java SE
8中会有的“lambda”语言特性。lambdas目前的计划和目标是支持"单一抽象方法"接口。我们在JavaFX中设计新的Java
APIs遵循这个原则,所以当lambdas有效时,他们自然都会使用JavaFX 2.0的APIs。
在Java SE
8中会有的模块化是另外一个有益于JavaFX的功能。模块化有助于部署(也许我们最终可以有一个网络部署的单一部署神器),有助于通过减少加载类的数量以提升启动时间。模块化也能在许多其他方面提升启动问题,例如在“安装时间”执行一些工作,缓存它,而不是每次应用程序启动时都重做工作。
记者:放弃对JavaFX脚本的支持意味着失去了这种语言的某些好处——如数据流式绑定和文字收集。通过Java
API这些方面有多少支持呢?
JavaFX脚本最具创新的一个功能是它支持绑定,这是一个特别强大的概念。更有甚者,在强大的表达式范围内,JavaFX脚本中的绑定支持是唯一的,以及因惰性计算而产生的高性能,这些都是有可能的。
我们将这些重要的功能都带到了JavaFX
2.0中,开发者应该很乐于学习这些。它既有低级绑定APIs(非常有力但很复杂,尽管非常详细),也有高级绑定APIs,这些都是采用接口模式。另外,我们引入了观察收集(ObservableList和ObservableMap)。
记者:在JavaOne里提到的一些功能,既支持本地的Java 2D/OpenGL/HotSpot
VM堆栈,也支持JavaScript/HTML5/web浏览器堆栈通过相同的API调用进行渲染。在JavaFX
2中也有这样的支持吗?
我们在探寻许多可能的途径,也在继续研究这个项目,这是相辅相成的,但不是JavaFX 2.0的一部分。
记者:JavaFX2即将发布的开源许可证是怎样的?
在JavaOne我们已经宣布基于开源许可证书,我们会发布UI控件。我不能就具体计划发表评论,只是说我们致力于此计划。
|