技术开发 频道

在硝烟四起的java IDE市场中,谁是赢家?



   【IT168 评论】 经过团队的努力协调合作,JBuilder提供了名为Teamlnsight的服务器,它容易配置,并且包含了关键的开源工具:Subversion、Bugzilla、Continuum和XPlanner。你可以通过浏览网页、或者JBuilder手册、许多的项目报告和其他的方法入门。

    Java IDES (集成开发环境) 是应用程序团队开发使用最广泛的一种工具。这些集成环境也最有能力将产品快速投放到市场。鉴于此,是时候问问你自己:你当前使用的Java IDE是不是最适合你的需求?是不是该重新评估?

    在2005年三月,也就是那些IDEs 已经都做了很重要的改善之后,InfoWorld对这些产品做了一个很细的比较。现在,我决定重新审视那些评出的优胜者,和2006至2007 InfoWorld技术授予的获胜者——IBM的Rational和SUN的NetBeans。
过去的两年中,这些产品已经变得成熟,令我印象很深,但是,他们在一些方面并没有取得新的进展。而其他Java开发工具包——static code analysis(静态代码分析)、unit testing (单元测试)、build management(调试管理)已经取得了更大的进步。

    IBM的进入
    蓝色巨人依靠Eclipse进入了Java IDES的市场。Eclipse,这个开源的软件框架,它同时鞭策着Borland/CodeGear公司JBuilder研发的生产线。Eclipse最初只是一个Java集成开发工具,但是在最近几年,它被定为一种框架,许多的插件能够加入到其中,因此,Eclipse中可以构造出各种各样的工具(其中的许多可以跟Java开发没有关系)。

    Eclipse新框架方向出现了一些令我们关注的地方,原始的Java IDE概念在优先次序上被撤销了,这种看法或许是正确的,但是Eclipse目前是仍是Java插件最大的社区已成为一个事实。

    RAD 7 在Eclipse基础上增加了几个组件。从IBM公司的角度出发,这些组件面对的是企业应用。他们包括一些端口和一个开发工具的接口,以及扩展的数据库支持。

    那些数据库的支持,可以预见是服务于IBM公司的BB2数据库的,它包括生成用户自定义的函数、存储过程、SQLJ代码的能力——它是这里提到的产品中,拥有的少有的能力。

    但是,RAD 7的绘图和建模能力受到了限制,它仅仅支持两种UML图表。为了从IBM得到更多的图表支持,你要不惜买更贵的IBM的Rational软件构架。

    用RAD 7,你可以开发Web服务程序和Web服务客户端,生成WSDL,甚至不用UDDI服务来作单元测试。除此之外,它还支持IBM的DADX,一种用于Web 服务中DB2 XML的扩展。哎,不过IBM中心也介入到UDDI的测试:它仅仅支持使用IBM技术的个人注册用户。

    从编写代码的角度说,RAD 7提供了静态分析工具,这种工具整合了200多条的规则,这些规则由IBM认为的Java可能出现的缺点和编码错误而设计的。

    RAD 7小的缺憾
    这些扩展有助于反映IBM长期存在的传统——大量的文档说明。
    RAD链接到易于理解的指南和IBM的网站上——以丰富的文章收藏和附加资源在开发者社区中而闻名。
如果应用程序需要用到脚本语言的地方,RAD 7内置了对Jython(基于Java的Python)的支持。不幸的是,虽然在语言上Jython和Java完全不同,但IDE不能自动识别什么是Jython语言,什么是Java语言。这会导致IDE出现一些不反应的现象。

    这个缺陷虽然很小,但是却反应出我使用RAD 7的一个时常发生的体验:许多的特征并不是执行的很好。举个例子,安装这个软件是非常困难的。在经过大量的IBM的支持后,我才能够正确的安装,并且原始的问题还没有找到答案。

    还有更多的缺陷。一个注释文字拼写检查的选项没有工作,因为IBM没有装上字典;这个选项被选上后,它显示所有的文字都是错误的。代码检查工具有时会错误的修正。动态帮助对话框经常让你回到原来的错误水平,因此你不得不回到你出错的地方。
    随着时间的过去,这些问题使一个很好的产品用起来却很郁闷。
    我还有一个要抱怨的是:在支持现有的Java 标准上,IBM远远落后其他制造商。它是这里提到的所有产品中唯一不支持Java EE 5 或 Java SE 6。

    由于RAD 7对许多产品的特殊支持,特别是DB2和WebSphere的支持,我已经推荐使用RAD 7。那些希望在许多国家的开发者都使用同一个IDE的机构们,将也会喜欢上RAD 7。
    但是,相比较很高的价格和我的一些抱怨,我鼓励机构好好的检查那些选项,最好在他们大量投入资金之前。

    JBuilder 介绍
    在我们所描述的产品中,JBuilder 2007获得了第一名的成绩。这是该产品移植到Eclipse平台的第一个版本。它由CodeGear公司开发,CodeGear从Borland公司独立出来,专门做IDE 工具。

    由于Borland提到的一些困难,以及这是新平台上第一个版本,我觉得它要成为一个好的产品之前,会经过一些有缺陷的阶段。但是,事情不是我想像的那样的,我发现它很稳定,健壮,并且还有很多的创新的特点。可以肯定的说,CodeGear公司已经决定在这个版本里扔到先前一些臃肿的东西,并且结果取得了辉煌的成绩。

    从编写Java代码来说,JBuilder有三套不同的代码审核器和分析器:开源的PMD、错误查找器(Findbugs)和Borland公司自己的代码检查工具(code-inspection)。虽然这些工具缺少对出错问题的一些的解释,而在IBM的产品RAD 7中会有贴切的推荐的错误解决提示,而且这些工具很好用。

    JBuilder包含了一个标准的包,它是我见过的所有IDE中最为全面的包。它产生80种以上的标准,并且以图表或者电子数据表的形式显示出来。(令人吃惊的是,这些标准并没有包括可维护的索引,而所有其他的标准都会制作出一个可供查找的索引。)当你对这些标准不感兴趣的时候,你可以关掉这个标准,同时,你也可以设置一个端点,你想去跟踪下去的端点。

    JBuilder也保存了那些标准的快照,因此你可以比较代码当前的状态和先前的状态,保证你朝着正确的方向迈进。
    CodeGear整合了JBuilder的Optimizelt工具,它是Borland公司过去作为一个单独的产品提供的。Optimizelt提供了许多高级视图用来分析软件的性能和内存的消耗。它包括代码覆盖分析和其他的进程数据分析。



    JBuilder协作的特性

    JBuilder也同时提供了协作的特点,给我印象深刻。它引进了一个面向开发者的消息系统,这有助于查看代码和开发者之间的交流。但是,它只能用在对等网络,工作在相同网络段中。

    经过团队的努力合作,JBuilder提供了名为Teamlnsight的服务器,它容易配置,并且包含了关键的开源工具:Subversion、Bugzilla、Continuum和XPlanner。你通过浏览网页、或者JBuilder手册、许多的项目报告和其他的方法入门。

    JBuilder定位为Eclipse的第一个开发工具,是一个很大的成功。我在运行中所发现的唯一的bug是那些没用的重复出现的图标。我抱怨的主要是那些还没有实现的功能,比如说缺少JSP和JSF(当然这出现不久)的可视化设计。

    这个产品没有产生基于DB2应用程序的部署文件,部署基于DB2应用程序文件是一个冗长的过程。最后,它只能在Windows系统上运行,五月分的时候公司提到将会运行在Linux 和 Mac操作系统上。

    我所讲的这个版本需要1,999美元,并不便宜,但是它提供了不同价位的版本。对于那些不需要那些高级性能的开发者,有职业版和开发版的JBuilder可供选择,分别是799美元和399美元。



    关注Sun

    在我所提到的这些产品中,Sun公司的NetBeans是唯一的完全开源的产品,从netbeans.org网站上能够免费获得。不想其他的产品的软件包,NetBeans需要少量的配置;你启动NetBeans的核心平台,根据你的需求,增加一个包就可以了。

    最近,Sun提供了一个企业包和一个可视的Web包,一个为J2ME开发的包和一个C/ C++包。这些包都是IDE的一些插件,能够提供稳定的新功能。我曾经下载过这些包,不费力的就把他们安装上了。

    当我几年前第一次使用NetBeans时,觉得它最多就是一个模仿其他IDE的好的特性,而不称为一个真正的Java IDE产品。而现在情况变了,NetBeans的流行程度由此可见一斑:2006年12月,BZ的研究报告显示NetBeans在过去的一年一直保持着强势增长势头,现在它仅排在Eclipse后面,位居第二。

    从企业级的开发来看,NetBeans提供了几个很有用的特性,包括支持Java EE 5。该IDE还有一些很好的工具,用来开发SOA架构的企业开发和一些普通的Web服务开发。

    举个例子,NetBeans是这里所有产品中,拥有能够完全为BPEL图解和建模的能力。

    NetBeans缺乏常见产品的支持
    但是,NetBeans所提供的企业服务也有不足的地方,缺乏对一些常见的产品的支持。它不支持IBM的WebSphere和缺乏对任何一种数据库的完全支持,除了JavaDB。最后一点需要澄清的是:虽然NetBeans将支持任何的JDBC数据库,但是它仅仅为JavaDB产生部署文件和生成详细的DBMS特征。

    NetBeans的协作的特点很好,它内置了聊天和代码共享的能力,能够让开发者之间实时交流合作。
不像JBuilder的那些特点,NetBeans设计的时候就是基于服务器考虑的。你可以安装你自己的这种服务器,用来交流,或者用Sun公司免费提供的。你可以登录到Sun公司服务器,你们团队中的其他开发者将会显示他们自己的登录状态,这种设计有点像现在的IM产品。

    对于GUI设计来说,NetBeans捆绑了Matisse工具,Matisse是最好的GUI布局工具。当你拖拽小窗口部件到你的面板和对话框中时,他们会自动的将他们放置在准确的位置。另外,在你进行拖拽操作的时候,一些向导和建设性的布局就会出现。Matisse还能通过你的布局设计,自动生成代码。

    对于需要进行开发很多基于Swing的界面的程序来说,单独这个工具就可以让NetBeans成为一个IDE。Matisse工作在Swing的基础上,但幸运的是,由于Swing的性能和视觉感越来越好的,这将不会相过去那样,限制Matisse的发展,相反,会促使它的发展。

    然而本文所提到的其他的Java IDEs都用他们自己本身的格式来存储项目元数据,NetBeans聪明的依靠Ant文件来控制项目的配置数据。

    这里还有一个很重的优点:团队里用各种不同的Java IDEs,任何其他的IDE能够加载和运行NetBeans项目,而不需要手动转换或者导入一些其他信息。


    NetBeans用起来很爽

    当我使用NetBeans的时候,没有出现bugs,用起来还是很爽的。我唯一想抱怨的是用户体验的问题,Sun公司没有使用平滑的字体,所以文本没有像Eclipse中那样易读。

    非常清楚的是,NetBeans拥有非凡的综合特性。如果这些综合特性吸引了你,NetBeans就是你的选择了。不仅它是免费的,而且比那些基于Eclipse的产品更容易上手,用起来更加爽!

    凭心而论,NetBeans的运行时间令人不快,该公司准备在版本6中修正我的指出的这些缺陷,包括字体和运行时间的设置。如果你想用NetBeans,在你做决定之前,可以试试版本6的测试版。

    结论
    该选择那一种IDEs呢?如果你正在运行IBM的软件或者你或说多种语言,RAD 7是最好的选择,当然,前提是你不需要Java EE 5 或者 Java SE 6 的支持。

    如果你想一个费用低的方案,或者运行在Mac和 Solaris操作系统上的话,你的选择是NetBeans。对于所有其他的选择,JBuilder 2007是毫无疑问的选择,它的确是一个优秀的IDE。

0
相关文章