【51CTO.com独家特稿】Jacek Furmankiewicz是加拿大Compuware公司一位资深的开发者/设计者。他具有12年的专业IT经验,范围涉及UNIX,PowerBuilder,C#/Microsoft .NET,Java,PHP,还有Microsoft SQL Server和Oracle。
一、引言
自从前几年Eclipse加入到Java开发IDE大军中以后,情况对于Java开发者简直发生了戏剧性的变化。SWT与Swing两种工具包各有自己的优缺点,而且在性能及外观点都没有远远压倒对方的强项,Eclipse以其明显的优势—独特的性能,易于上手和高生产效率—跨入Java IDE行列中。本文旨在对三个主流Java IDE—NetBeans,IntelliJ IDEA和Eclipse—的常规特征(安装、性能及编辑器,等)进行对比分析,但仍然把重点放在Swing,JSP/Struts,JavaServer Faces(JSF)以及J2EE/EJB 3.0开发等重点领域特征的比较上。在必要的情况下,也对JPA(Java持久性API)支持方面进行适当评价。
在上面三个IDE中,Eclipse是唯一的存在多个发行版本的IDE:从基本发行版本到带有额外开源插件的预包装版本(例如EasyEclipse),再到开源/商业型的混合版本(例如Genuitec的MyEclipse)。为了对Eclipse的功能提供比较中肯的评论,我在本文中主要针对其基本发行版本(包括缺省的Eclipse子工程—例如Visual Editor和Web Tools Project)。每当讨论到它所缺乏的功能时,我往往还要提到商业版的MyEclipse所提供的功能。坦率地说,我很难发现还有哪一种商业IDE会以每年49美元的订阅价格提供如MyEclipse所提供的那种优质的功能。
首先,让我们来讨论NetBeans 5.5。
二、NetBeans 5.5
供应商 | Sun Microsystems |
网站 | www.netbeans.org |
价格 | 免费/开源 |
分发 | 基本内容+Enterprise Pack+Visual Web Pack |
安装
NetBeans 5.5及其它发行包(例如,带有UML/BPEL/SOA支持的Enterprise Pack和支持JSF开发的Visual Web Pack)既可以ZIP包形式下载也可以以跨平台InstallShield安装程序方式进行安装。在Windows平台上,该安装程序与OS无缝地集成到一起—包括创建适当的桌面快捷方式以及在“添加/删除程序”面板中添加一个卸载程序。在Linux平台上,它仅被安装到指定的目录下并且在GNOME或KDE桌面上创建一个启动图标。遗憾的是,它并没有作为一个RPM或一个.deb文件形式发行,也没有提供一个标准数据仓库形式,这允许Linux用户可以象他们安装任何其它应用程序一样来安装它。
总体特征
在早期版本中,NetBeans基于Swing进行开发,致使表现得缓慢、庞大且界面丑陋,使人使用起来很不愉快。然而,NetBeans开发小组从版本5.0开始,对整个IDE作了大幅度的调整,并且在NetBeans 5.5中全面结合进JDK 1.6,从而提供了一种无可争辩的优秀的用户体验,特别是运行于Windows平台上时(Linux平台版本仍然存在一些UI小问题,这估计要在NetBeans 6.0中得到全面纠正。特别是,版本5.5缺乏对于本地GTK外观的支持)。
首先,NetBeans窗口系统的设计相当高级和灵活,开发人员可以非常容易地以配置方式实现停靠、隐藏和切换几乎任何面板/编辑器。我还发现其菜单布局极具逻辑性而且易于使用,你可以很容易地存取大多数常用功能(例如,维护用户库)。一直以来,其整体稳定性和性能都是相当优秀的。
其次,基本Java编辑器的设计也非常不错,尽管还不算最好(特别是,在代码自动完成方面与其它IDE相比还有些慢),但是完全可以使用。此外,它的编辑器还提供了一组基本的重构功能(特别是,最常用的重命名/移动特征),尽管在我的测试中,我发现它并不总是上下文感知的—例如,在重命名Struts工程中的一个行为类相应的包时,struts-config.xml文件中相应的入口就不会更新(但是,在重构JSF支持bean和更新它们在faces-config.xml中的入口以及J2EE 1.4会话bean和它们在ejb-jar.xml中的入口等许多方面都表现得相当不错)。
Swing开发
NetBeans最值得称道的就是其著名的新开发的Matisse GUI设计器,这个工具基于新的GroupLayout布局管理器(它最初是由NetBeans开发小组自己开发的—在纳入到基本JDK前作为一个扩展开发)构建。由于采用了基于基线型设计技术(即是,基于一个控件中实际文本的位置自动地对齐控件),所以,创建具有专业外观的UI变得相当容易。事实上,其强有力的缩放和停靠功能使之成为我所见过的运行于任何平台上任何语言中最棒的UI设计器。
在安装5.5版本之后,我还下载了最新的更新包—该包支持从未来的6.0发行版本逆向移植到当前的5.5版本。其中提供了一些极具生产效率的特征,例如自动国际化以及使用定制表单/面板(只要在你的工程内至少成功地编译它们一次)的功能。Matisse就是NetBeans团队所具开发水平的一个极为优秀的例证(图1展示了实战中的Matisse)。
![]() |
图1:Matisse及其定制的JPanel组件 |
对于Swing开发者来说,使用NetBeans的另外一个优点是,他们能够使用它提供的强有力的RCP(丰富的客户端平台)向导来创建新的复杂的Swing应用程序。考虑到Eclipse的基于SWT的RCP的流行性,NetBeans开发小组竭尽全力开发出一种相当可行的基于Swing的选择方案,并且,恕我直言,其效果给人留下极为深刻的印象(尽管对于小型工程开发而言,初始学习时可能要费些劲)。
共3页: 1 [2] [3] 下一页 |