技术开发 频道

Java IDE之争,谁将笑到最后?



    【IT168 专稿】如果把2006年Java IDE市场定位是一次重新洗牌的话,那么2007就是彻彻底底的血拼,Jbulider改换门庭, Eclipse从开发工具向框架级迈进,Sun极力推广Netbeans,2007年的将会是IDE未来走向的又一次革新,那么作为开发者,我们又如何评价现用的Java IDE市场呢?

    2005年国外一家权威媒体对这些工具进行了全面的分析比较,随着时间的推移,开发工具的市场格局已经发生了翻天覆地的变化。本次我们把上次评选的获胜者Borland JBuilder和另外两个优秀的工具IBM Rational和Sun的NetBeans再作一次比较,供朋友们参考。

     毫无疑问,在过去几年中,这些工具在很多方面已经变得非常的强大,但是在某些方面却缺乏大的进步。在相同的时间里,Java开发者工具中的一些非主流产品已经斩露头角,其中包括静态代码分析、单元测试和版本管理方面的工具。 

    一、IBM的参赛作品 

    首先我们推出的第一款产品是蓝色巨人的参赛作品IBM Rational Application Developer(RAD)V7.0了,它实际上是一款基于Eclipse开源框架的产品,Eclipse另外也对Borland/CodeGear的JBuilder产品提供了支持和帮助。Eclipse最初只是作为一个Java IDE的开发平台,但是最近几年Eclipse的卓跃表现,我们应该把它重新定位为一个平台框架,各种各样的插件都可以安装在它上面,从而形成了各种各样的工具,甚至其中很多技术已经与Java开发没有任何关系。

    Eclipse新的框架方向已经引起了业内人士的关注:最初的Java IDE概念在逐步淡化。这种感觉或许有它的正确性,但是这种感觉又会被这样一个事实所抵消:Eclipse是目前全球拥有最大的Java插件社区。

    RAD 7在Eclipse基础上增加了多个模块。由于出自IBM的豪门之作,其中许多模块都带有面向企业应用程序开发的成分,其中包括portlet和portal开发工具和对多种数据库的支持。

    说到数据库支持,自然少不了对IBM DB2的支持,使用RAD 7可以编写用户自定义功能(UDF)、存储过程和SQL J代码,所有这些功能在所有的IDE产品中都是少有的。

    但是,它的图表和建模功能却非常的有限的:RAD 7仅支持两种UML图表(而NetBeans是八种,JBuilder是九种)。要想使用来自IBM的全面图表功能支持,你必须多掏更多的银子来购买IBM的Rational Software Architect工具。

    使用RAD 7,你可以开发Web服务和Web服务客户端,产生WSDL,甚至针对一个专门的统一描述、发现和集成 (UDDI)服务进行单元测试。还有,它还支持IBM的DADX,这是一种Web服务所使用的DB2 XML扩展。

    在代码编写方面,RAD 7提供了一个静态分析工具,具有IBM制定的关于Java缺点和编码错误的200条规则。虽然本次评选中的其他IDE也提供了更多的规则,但是IBM的解决方案对错误进行标记的功能是其他产品所无法比拟的。

    通过提供针对这些规则进行非常详细的理由阐述和相应的解决办法,使这些规则的作用率被大大提升。

    在文档帮助方面RAD能集合这么丰富的帮助信息,是IBM在文档方面长期所具有传统优势的结果。在RAD中可以把用户链接到全面的开发指南或者链接到IBM的网站来查找更丰富的资源,IBM网站在开发社区上,向来以具有丰富的技术文章而著称。

    小缺陷不少

    人无完人,RAD也不是完美的无懈可击,缺点与优点并存,假如应用程序需要一个脚本语言来把不同的部分连接在一起的话,RAD 7具有对Jython语言(基于Java的Python)的内置支持。不幸的是,这个IDE工具不能自动识别出什么是Jython语言和什么是Java语言,尽管从句法上来说,这两种语言是完全不同的。但是这个小小的缺陷会导致某些误操作的发生。

    这个缺陷虽然非常小,却可以让人们以小见大,安装RAD 7的软件是一一件苦差事。必须要得到来自IBM的帮助后,才能够正确安装这个产品。

    另外,因为IBM没有发布相应的字典,对注释和程序内容进行拼写检查的设置选项不能正常工作,;如果起用了这个功能,它会标记所有的单词为误拼。代码校验工具有时候也会给出错误的纠正。对话框中的动态帮助经常将用户带到错误的帮助页面中,你不得不通过导航再去寻找正确的帮助页面。

    随着时间的发展,这些积累起来的问题影响了人们对这款产品的期待和使用。

    对这个工具还有一点让人遗憾的地方:在支持Java标准方面,IBM已经远远落后于其他厂商。只有这一款不支持Java EE 5或Java SE 6。

    对于那些IBM的忠实用户来说,我推荐使用RAD 7,因为它可以很好的支持来自IBM的其他产品,尤其是DB2和WebSphere。另外,对于那些不同国家的开发者使用相同的IDE用户来说,也会非常喜欢RAD 7,因为它提供了多国语言版本的支持。但是,考虑到相对较高的价格和上面我所说的缺点,用户在开始掏出银子购买这款产品前,一定要慎重的考虑一下。

    JBuilder 2007:王者归来


    在Java IDE的口碑和功能方面,JBuilder 2007的表现无疑是最好的。这个版本是JBuilder投入Eclipse平台以来的首个版本,它是由Borland分公司CodeGear发布的。

    由于Borland公司在宣传策略上的失败,并且JBuilder 2007是基于Eclipse平台发布的第一个版本,我曾经认为这是一款还不完善的产品。但是,事实去相反,在JBuilder 2007上却展现了一个具有很多创新功能且非常强大的IDE工具。

    在Java编程方面,JBuilder具有三种不同的代码监督和分析设置:开源的PMD、Findbugs和Borland自己的代码检查工具,这些方式相互配合使用,把功能发挥到了极至。同样JBuilder 2007也有自已的不足之处,缺乏RAD 7产品中的问题描述和体贴的推荐操作等功能。

    JBuilder还集成了一个分析评估程序,这个分析评估程序在所有IDE产品中也是最好的,它产生了超过80多种不同的评估机制,并以图表或电子表格的形式展现。令人好奇的是,它的评估程序并不包含可维护性的索引,你可以关闭不感兴趣的机制,并设置你要跟踪的线程。

     JBuilder还可以对评估机制进行快照保存功能,因此你可以把代码的当前状态和此前运行的代码进行比较,以确保程序朝着正确的方向发展。

     同时,CodeGear还整合了JBuilder的Optimizelt(代码测试工具)套装工具,这是一款Borland提供数年的独立产品。Optimizelt提供了高分辨视图来查看软件的性能和内存消耗情况。同时它还包含代码覆盖分析(尽管只是基于类覆盖的分析,而不是逐行代码的分析),还有一些功能是用来了解底层所发生的问题,其中也包括对每线程数据的查看。

    令人印象深刻的协作功能


    JBuilder 2007还在协作功能方给予了很大的支持。它具有一个开发者导向的消息系统,对代码检查和开发者之间的交流非常有帮助。不幸的是,它使用了一个对等设计模式,只支持同一个网段的对端用户。

    对于团队协作方面,JBuilder提供了TeamInsight这个设置容易的portal(交互平台)服务器,它包含了一些关键的开源工具:Subversion、Bugzilla、Continuum和Xplanner等。这个portal服务器可以通过Web界面或JBuilder来访问,同时也包含了很多项目报表和分析工具,这也是其它的IDE团队无法比拟的。

    考虑到Borland第一次在Eclipse平台上发布IDE工具,JBuilder 2007所获得成就非常值得称道。唯一稍显的不足是很多帮助图标并没有发挥作用。同时没有针对JSP或JSF提供可视化编辑器(不过据说很快将增加这部分功能)。

    并且该产品还不能对使用DB2的应用程序产生部署文件,这是一个足以致命的缺失功能。并且目前的版本只支持Windows,Linux和Mac版本要等到五月份才可能发布。

    如果你需要具有强大功能的JBuilder 2007版本,你需要支付1999美元,另外它还有799美元的专业版和399美元的开发者版。


    来自Sun的NetBeans


    Sun的NetBeans是本次入围作品中唯一一款完全开源的产品,可以免费的从netbeasn.org下载。与其他工具不同的是,NetBeans要求你进行一些简单的“组装”工作;从一个核心NetBeans平台开始,根据你的需要来增加不同的程序。 

    目前,Sun提供了一个企业包和一个Visual Web pack包,还有一个实现J2ME编程的移动程序包和一个C/C++程序包,还有一个单独的程序包NetBeans Profiler。这些程序包是常用IDE插件的扩展,通常用它们来提供一些不错的新功能。

    几年前当我第一次审视NetBeans的时候,它更像一仿制IDE的跟风者,与其他的Java IDE产品不在同一个起跑线上。但是现在的情况却发生了很大的变化,NetBeans的广泛流行已经说明了这点:根据国外一家调查公司在2006年12月的一次调查显示,NetBeans在去年获得了长足的进步,现在它已经仅次于Eclipse,是第二大Java IDE工具。

    对于企业计算来说,NetBeans提供了很多有用的功能,包括对Java EE 5的支持,是通过Sun的Glassfish项目实现的。这个IDE有很多好的工具支持基于服务的企业开发,尤其是在SOA方面。

    举个例子来说,NetBeans是本次IDE中唯一的支持BPEL图表和建模功能的产品。

    缺乏对通用产品的支持

    但是,NetBeans的企业服务支持方面的优势由于缺乏对通用产品的支持而被抵消。NetBeans不支持IBM的WebSphere应用服务器,还有,除了JavaDB之外它缺乏对其他数据库的完整支持,对于这一点我们需要澄清一下:NetBeans可以支持任何JDBC的数据库,但是它只支持JavaDB数据库应用程序的部署文件和利用一些DBMS(数据库控制和管理)特定的功能。

    NetBeans的协作功能也非常不错。NetBeans具有一些内置的工具来实现开发者之间的实时协作,包括交谈和代码共享功能。
    与JBuilder的相应功能不同的是,NetBeans的设计是基于服务器的。你可以搭建你自己的服务器来实现这种交流,或者免费使用Sun提供的一个服务器,对于后者你只需要简单的登录到Sun的服务器上,你群组中的所有开发者就会被显示出来,还有他们的登录状态,这一点与与我们使用的即时通讯(IM)工具颇有几分相似。

    在图形化设计方面,NetBeans捆绑了Matisse(基于GUI的创建器),这是当前世界上最好的图形化用户界面布局设计工具之一。当你通过拖拽一些小工具到面板和对话框中,他们被自动的正确放置。当你执行拖拽操作的时候,会弹出非常好的和可选位置的指导。然后Matisse从设计模式产生相关的代码。

    由于Matisse只支持Swing,它使得NetBeans这个IDE工具非常适合于那些从事大量基于Swing界面设计的用户。幸运的是,由于Swing性能和外观感觉上的稳步上升,这已经不能算是一个缺陷了。

    本次评选中的其他Java IDE工具全部使用它们自己的专用格式来存储项目元数据,NetBeans非常明智的依赖Ant文件来存放项目配置数据。

    这样NetBeans具有一个重要的优势:在使用多Java IDE的团队中,任何其他IDE都能加载和运行NetBeans项目,而不用进行一些转化工作,实现不同IDE平台之间的代码互操作性。

    使用Ant文件方式也有一个缺点:NetBeans只支持单一的runtime配置。大多数其他IDE可以让你选择多Runtime配置;而NetBeans没有,每次你想修改你的应用程序的参数的时候,你必须手动修改一个配置,不过幸运的是,即将到来的NetBeans 6.0将要修正这个问题。

     我在使用NetBeans的时候没有碰到任何bug,给人一种很舒服的体验。我唯一感到不满的地方是在用户体验方面:Sun不支持使用反锯齿字体,因此其中的文本阅读起来非常困难。

    公正的说,截至到发稿时间,NetBeans是三款IDE中最不被看好的IDE。但是,Sun公司正准备NetBeans 6,据说新版弥补了关于字体和runtime配置等问题。因此,在你考虑使用NetBeans的时候,先考察一下NetBeans 6。

    结论:各有优点 按需选取

    面对这些集成开发环境工具IDE,你该如何选择?如果你正在使用很多IBM的软件组合,只要你不需要对Java EE 5或Java SE 6标准支持的话,RAD 7是你非常好的的选择。

    如果你想要一个比较经济的选择,或者一个可以运行在Mac OS和Solaris上的IDE,你的非常好的选择是NetBeans。对于所有其他情况,JBuilder 2007是明显的更好选择,它是一个真正出色的Java IDE。
0
相关文章