专访:NetBeans平台发展的未来
【IT168 分析评论】
Frank Sommers: 在今年JavaOne大会上你们做的另一个演示是用NetBeans富客户端框架或NetBeans RCP快速建立桌面应用。什么是NetBeans RCP,它与Swing应用框架JSR [JSR 296]?如何联系?
Tim Boudreau:当你建立一个桌面应用时有很多问题需要解决,有时也是相当复杂的应用,那你就需要使用NetBeans平台。对于复杂程度较小的应用,会有一些基本问题可以在Java平台上被很好地解决。例如,你如何存储本地的默认值?或者,你如何提供对可能是颜色或字体的资源的真正访问?这些问题与NetBeans平台要解决的问题相比级别要低一些,尽管还不如用NetBeans RCP处理更好。JSR 296着眼于非常低级的应用问题,就象刚才提到的,或者是简单的写入动作,及类似的事情,这些努力是一个补充。
NetBeans RCP试图解决应用体系结构的问题。当你获得一定大小的应用时,NetBeans平台会使事情变得很容易。如果你编写一个桌面应用,会有一定数量的问题,你恰恰不得不去用生疏的UI工具箱来处理,例如Swing无法处理的。你会有菜单,键盘快捷方式,行为,如果你要显示多组件,你还需要有一些种类的窗体管理。在关闭的时候,你还要保存一些设置,当你重新启动时,要恢复整个或部分应用状态。数据访问也会变得有趣。
NetBeans平台处理那些问题。例如,如果你使用NetBeans [RCP]访问资源,你能在一个FTP服务器上使用Filesystems API,或者在一些远程服务器上的当地文件,JARs内的资源交互,就好像那些是本地文件一样。NetBeans [RCP]有一个"generic hierarchy and presentation"库-- Nodes API。你拥有节点,每一个节点有子对象。一个节点是一个表达层—节点有行为,显示名称,图标等—所有用于呈现给用户的大部分的任意数据模型的基础。将Filesystems和Nodes放在一起,你就有了很强大的东西—许多复杂的UI,可以用于一个树形控件或一个列表控件,在NetBeans中通过在一个虚拟文件夹中粘贴一个文件,打开那个文件夹的查看就可以简单地做到。Explorer API提供大量的Swing组件,可以通过很多方式展现节点与它的子节点。
最后,NetBeans中的模块系统[RCP]是关于如何设计一个可维护的应用。模块允许你通过在它们自己的JAR外部,不是公共的类把一个应用的因素分成不同的部分。这个模块能够声明其它模块允许从什么包中调用类,其它包中的类仅在它们所在的JAR中是公共的。遵循这些路线,也许会在Java 7中作为一个语言特征出现,NetBeans RCP已经为桌面应用提供了这些。
Frank Sommers:目前,NetBeans主要还是一个Java IDE,但是它也支持C和 C++。你预想它还会支持其它什么语言呢?你看到NetBeans会和Eclipse的目的一样,正成为一个语言无关的IDE平台吗?
Tim Boudreau:自从1998年以来,NetBeans并没有只为Java而工作。它也是C/C++工具的基础,Sun公司已经将它转用于Solaris很多年了,对它的支持正在进行扩展化和通用化,不再仅限于Solaris。NetBeans也是HP公司用于OpenVMS的IDE,支持COBOL, Fortran, C/C++和其它中语言。例如在今年JavaOne大会上我们演示的对VB的支持—实际上是读取VB代码,编译成字节码,然后运行,有时会比它本应生成的本地代码运行还要快。因此,我们已经开始了这个项目,也会有围绕脚本方面的开发做更多的努力。NetBeans并不一定要局限于Java IDE平台—它对于Java已经有了很大地支持,那是人们首先要考虑的事情。但是就NetBeans目前的发展来看,它已经成为了一个语言无关的平台。
正象我们早期提到的,重要的东西的寿命总是很长。一些人声称Java会在5或10年里死亡,我们都会迎来下一个大的事物。即使真是那样,NetBeans也一样可能会支持下一个事物的到来,但是对一个语言的寿命做假设的时候,有一件重事情要考虑,对于期望任何特殊的程序语言或范例的盛行周期日益变得更长是很实际的,这有两方面的原因。首先,我们在绘制人们如何考虑告诉计算机工作的方式上的蓝图方面正越来越好,其次,一个语言统治的时间越长,它的代码就会越多,因此移植的代价也就越大。于是你不得不紧跟一些事情,这些事情会强迫变化中的语言很丰富多彩。
现在有很多有关脚本语言的谈论,但是我期待在主流编程语言中的下一个重大变化是让直觉上类似多核芯片的并行方式成为规范标准。我确信在未来的时间里这些目标将会成我们考虑的主流。
0
相关文章