技术开发 频道

JAVA IDE之争,谁会成为最后的幸存者(上)

    【IT168 专稿】自从几年前Eclipse诞生以来,对于开发者来说事情变得愈发有趣了,虽然它具有的SWT和Swing这两个工具包都有他们的强项和缺点,但是没有哪一个在性能或用户感觉上有超过对方的特别惹眼的地方。Eclipse集中于使属于Java IDE的如下特征得到满足:特色、易用性和高效率。本文将探究在过去的几年里的几种主要的Java IDE之间产生的激烈竞争。

   本文主要讨论了三种主流的Java IDE,Netbeans、IntelliJ和Eclipse—从基本的、通用的特征(包括安装、性能和编辑器等)讲起,再集中精力讲述它们的四个共同领域,即Swing、JSP/Struts、JavaServer Faces (JSF)和J2EE/EJB 3.0。同时本文还尽可能地评价了对JPA(Java持久化API)的支持,它代替了硬编码的JDBC查询或特定的库(例如Hibernate或Oracle的TopLink)。

    在这三个Java IDE中,Eclipse是其中存在多版本和分发的IDE,起源于带有开源插件(例如EasyEclipse)或开源/商业混合的插件(例如Genuitec的MyEclipse)的预包装版的基本分发,为了对Eclipse所能够做的进行公平和切实的评论,我集中于基本的发布(包括Eclipse默认的子工程,例如Visual Editor和Web Tools Project),无论在哪处我感到不足的地方,我也会考虑在这些地方MyEclipse作为一个商业的替代物,它提供了什么。坦率地说,对于注册49美元每年的价格的的产品,我被迫去寻找一个与MyEclipse功能上相当的商业IDE。

    首先,让我们先谈谈NetBeans5.5。
   

一、NetBeans5.5

制造者
Sun Microsystems
网站
价钱
免费开源
分发
基本版+企业版+可视化的Web

 
1.   安装
NetBeans5.5,像它的附加版本一样(例如,带有UML/BPEL/SOA的企业版和带有JSF开发的可视化Java版),用户可下载ZIP压缩版或跨平台安装者版。在Windows下,安装者将其集成进操作系统,包括记录正确的桌面快捷方式和在添加/删除面板上增加卸载器,在Linux下,它简单的安装到指定的目录,并在GNOMEKDE桌面上创建一个启动图标。但不幸的是,它没有打包成一个RPM或一个以deb为后缀的文件,也未提供一个标准的储藏地方(在这个地方允许Linux用户像安装其它应用软件一样来安装它)。
 
2.       主要特色
NetBeans一度是个“对Swing的支持的任何事情都是错误的”的同义词:缓慢、臃肿,并且丑陋,在这个平台上工作让人觉得不舒服。但是,NetBeans工作组在5.0版本后对整个IDE进行了巨大的整改,NetBeans5.5JDK1.6的结合使得NetBeans在用户体验上提升了一个很高的等级,特别是在Windows下(在Linux下仍然有一些界面故障,这些故障在6.0版本时等到修正,特别地,5.5版本缺乏本土的GTK界面支持)。
   Windows系统如我们可以想像的那样是先进的和有弹性的,有了隐藏/切换等的能力,几乎任何一个面板/编辑器在所有可能的配置中都是很容易的。我也发现菜单的布局很有逻辑性,也很易用,它将所有最常见的函数放在最容易获得的地方(例如,保持用户库)。总的来说,总体的稳定性和性能都是很出色的。
   基本的Java编辑器是合适的,虽然它们当然不是在这个领域最好的(特别地,代码的生成在某种程度上比它的竞争者要慢),但是它还是可用的。也提供了对重构操作的一个基本的集合(特别是最常用到的重命名/移动等)。虽然在我测试的过程中发现它在使用时常常存在某些危险,因为它并不常常是上下文相关的。例如,在Struts工程中重命名一个Action类的包时,它不更新struts-config.xml中的相应配置(虽然它在重构JSFbean和相应的更新在faces-config.xml时,或在修改J2EE1.4session bean时,相应的修改它在ejb-jar.xml中的配置时工作得很好)。
 
3.       Swing开发
NetBeans的可圈可点之处是它著名的Matisse用户界面设计器,它基于新的GroupLayout布局管理器,它本来由NetBeans工作组自己开发来作为一个扩展,对基线支持的结合(例如,自动对齐控制能力基于在一个控制器中实际文本的位置)使得创建专业的UI界面变得十分容易。实际上,强大的改变大小的功能制作了这个最好的UI设计器,我看到,它适应于任何语言和任何平台。
   在安装了5.5版本之后,我也抓到了更新的最新集合,它包括一些有效的特征,例如自动国际化(通过控制每一个表单/对话框/面板作为ResourceBundle包括的所有的国际化字串),也包括运用自定义的表单/面板的能力(它们在你的项目中不止编译一次)。MatisseNetBeans工作组做得最好的一个例子。(图1Matisse操作的一个例子)。

1. 带有自定义JPanel组件的Matisse
Swing开发者来说,使用NetBeans的一个附加的好处是它使用强大的RCP向导的能力,它能够创建一个新的、复杂的Swing应用程序。鉴于基于RCPEclipseSWT的普及性,NetBeans工作组也为提供一个可用的基于Swing的替代物做了不少努力,我敢说,这带来了给人深刻印象的结果(虽然最初的学习曲线可能对小型的项目有点坡度)。
0
相关文章