声明:JavaEye新闻文章的版权属于JavaEye网站所有,严禁任何网站转载本文,否则必将追究法律责任!
今年Sun的JavaOne重点强调了JavaFX,这篇文章采访了访问Sun高级工程师 Amy Fowler,对于Swing, RIA and JavaFX给予了一些有意思的回答。
![]()
1。首先请介绍一下你自己。
我是Amy Fowler,我95年加入了Sun Java team,做了一年痛苦的AWT hacking之后,我开始做Swing,我差不多在Swing方面做了将近11年。
2。你现在的职位?以及你现在在Java client group(Java客户端部门)中的职责?
我是Java client group中的高级工程师,虽然我有几年没有接触Swing代码,但是我依然觉得我是一个toolkit工程师。我最近发布了一个新的demo,可以看一下SwingSet3,SwingSet3是一个开源项目,展示了Java 6 Update 10的最新功能。
3。JavaFX貌似将成为Client Java(Java客户端)的新方向。你对中间件公司和大型商业软件有什么建议吗?他们是否要转移到JavaFX上来?
在我和企业应用开发者合作的过程中,我感觉企业应用是一个比较传统的领域,对于迁移到新技术的应用有很大的抵触。所以,一开始谨慎一些是没有错的。但是使用新技术也是一种很大的乐趣,很多商业软件开发者经常以下基本问题头疼,比如管理大量数据的显示层,表单验证,实现动画图像节点等,这些能用JavaFX script简单实现,并且兼容整个Java平台,所有逻辑和结构无需任何改变。事实上,改变的只有GUI(用户界面),将大量业务逻辑隐藏在java系统内部,专注于GUI开发,能够提供更好的视觉组件。
4。JavaFX的目标用户是哪些?你能比较一下Swing开发者,RIA技术群(包括Flex/AIR/Silerlight),以及整个web社区吗?
这其实是两个问题,我们的目标用户分为普遍意义上的JavaFX用户 和 JavaFX Script语言用户。对于普遍意义上的JavaFX用户,我们的目标是专注在满足各个特殊团体的需求,对于RIA技术群来说,他们的抵制最少,因为如果JavaFX能够提供快速开发的能力,并且能很好的兼容java,在他们中普及应该相对容易。
从长期来讲,未来会有多少软件不是富客户端互联网应用呢?图像处理硬件方面发展迅速,能够提供能加丰富美丽的界面。Ben Galbraith在JavaOne演讲中就强调了现在用户体验已经上升到一个至关重要的高度。
但是你如何开发出丰富美丽的应用呢?我们相信JavaFX script能够良好的链接现存的设计工具(Photoshop, Illustrator等),让美工和开发者在一起完美配合,开发出优美的用户界面。
现在说说我们对于JavaFX Script语言用户。JavaFX Script语言和Java完全不一样,但是它的确非常棒。
对于定义视觉用户界面方面,它比java有以下优势:
I.declarative syntax语法定义,比XML简单清晰。
II.first-class functions for callbacks一级函数调用,不用再写匿名内部类anonymous inner classes
III.expression-based binding基于解释绑定,一旦使用,要手工查找是非常麻烦的
我必须承认,第一眼,我并不喜欢JavaFX,但是使用的越多,我越喜欢它。
5。有很多特性直接进入了JavaFX语言,比如binding绑定, animations动画, effects特效和retained painting保留绘画。而Swing的代码是非常容易debug调试的,然而要debug JavaFX代码需要IDE的支持,比如Eclipse, IDEA 和NetBeans等,对不对?
当然,IDE的支持非常重要,尤其JavaFX是一个全新的语法语言,包括一些特殊属性如binding绑定需要IDE的特殊debug支持。新的SDK将包括一个NetBeans插件,我相信IDEA和Eclipse也会在未来增加JavaFX插件支持。另外,我强烈推荐今年在JavaOne上发现的SwingExplorer ,能够可视化调试Swing。
6。我们没有看到很多成熟和专业的第三方Swing组件,尤其和Delphi,.NET甚至Flex相比,你觉得这是什么原因呢?
是的,和其他框架比,我们是没有很多第三方组件,但是我们依然有一些优秀的组件:JIDE (David Qiao) , JGoodies (Karsten Lentzsch)等。还有 SwingLabs,这是一个优秀的扩展组件包。
Swing主要由于是在90年底末期发布的,那个时候JSP和web应用已经成为主流,开发者意识到单一应用并不是跑在每个页面或者浏览器上。
7。近期,许多JVM语言(比如Groovy, JRuby, Scala and Jython)都使用Swing作为“UI视觉引擎”,和动态语言一起使用,开发用户界面,这是不是就是Swing的未来?
由于这次JavaOne强势推出JavaFX,很多人担心Swing会不会被放弃,未来所有的客户端效果都会用JavaFX来完成?答案是否定的。我们意识到,一个工具只能解决一个方面的问题,而且我们每一步的发展都是基于以前的成果。SceneGraph让我们集成了2D和3D,美丽和动画,成为一个稳定成熟的GUI工具包。
8。你认为Swing的缺点是什么?JavaFX是如何弥补这些缺点的呢?
有两个重要的Swing弱点被JavaFX解决:
I.如果你用Swing写代码,你有点象水管工人。Swing比较复杂,来解决所有UI方面的结构问题。但是,JavaFX script属性(declarative syntax, binding, functions),能够流线组装GUI界面。
II.Swing组件并没有存在2D座标系统中,要作出完美的动画需要很高的技巧,而在JavaFX中新的SceneGraph API能够很轻松提供炫酷的动画GUIs。
9。你还有其他的关于Swing的内容要告诉我们吗?
JavaOne是努力展示最新最sexy的技术,但是对于我来说,我更关心Java 6 update 10的更新。比如:
* Java Kernel
* Next Generation Java Plugin
* Deployment Toolkit
* Nimbus Look and Feel
* Java Quick Starter
* More graphics acceleration for Java2D
* Shaped and translucent toplevel windows
详细可以看看:Java6 Update10 Overview
来自:pushing-pixels.org


评论 共 6 条 发表评论
aishame 2008-06-06 14:15
呵呵,
番茄有益 2008-05-28 14:19
mkclawhammer 2008-05-28 12:58
Eastsun 2008-05-27 17:23
robertlyc 2008-05-27 15:12
QQbyte 2008-05-27 14:50
至于JavaFX要流行也许需要更多时间。