NetBeans VS Eclipse,新一轮的争端

时间:2021-03-20 01:18:26


www.theserverside.com ,www.javalobby.org ,dev2dev论坛等多个Java论坛上争论着一个非常激烈的话题:Why Eclipse Developers Are Moving To NetBeans(为什么Eclipse 开发者正在转向 NetBeans)。不知道是什么原因,如此简单的争端到了后来也会有些发霉的味道。

  不能否认,这些言论最初可能是发自一个NetBeans的忠实用户,难免言谈之间会有所偏见。不过据理力争,其说法也并非全无可取之处。尤其不解的是一些人将这些文字截取过来加上问号,然后横批一通,不久又有人在这样的基础上加上“真的吗”之类文字,再后来就一发不可收拾……最可笑的是有人从来没有用过NetBeans,居然把它批得一无是处。

  还是先看看最初的讨论中说了些什么吧:为什么Eclipse开发人员在转向NetBeans

  “尽管本周为市场服务的两篇文章并不是新闻报道或者科技文献,但是两个现代计算领域的神话在现实中已经被慢慢打破了。这两个神话就是:Eclipse发展快而NetBeans发展慢;必然结论是SWT发展快,Swing发展慢。”这两种说法是从IBM/Eclipse Foundation鼓吹市场的核心理论。随着EclipseCon 2005 的宣传,以新闻报道的方式发表了很多文章,其中一篇在JavaLobby上引起了激烈的争论。

  实际情况与IBM和市场和宣传有所不同。美圆可以买到当前的潮流但不一定预示Eclipse的美好前景。Eclipse的后续版本已经放慢了,比起前面的版本更加资源稀缺,而NetBeans3.5后的每个版本都越来越快。这个问题变得很引人注目,Eclipse组织正在针对可用性进行工作而如此同时还要面对日益激烈的批评。这不仅是因为性能方面的原因而且还有可靠性方面的原因。

  NetBeans的速度很快(至少在Linux上比Eclipse快,而且我认为它已经接近Windows上的Eclipse速度)。

  对于非Windows平台上的Eclipse。基于Swing开发环境的NetBeans 4.1和IntelliJ IDEA已经向我们展示不仅Swing有能力提供更高的性能而且它还提供了Eclipse不具备的一些很有竞争力的特性。NetBeans的用户界面已经被转换成开发人员所描述的那种“直觉型界面”,而Eclipse却不是。于是,很多Eclipse开发人员已经选择了NetBeans,而其它人也开始开始转向NetBeans。尽管Java和Eclipse的论坛在争论“为什么Eclipse很慢”、“为什么Eclipse会停滞25秒”、“crashes”等一系列问题,但很快争论的焦点就转移到或许并非仅仅是Eclipse的架构问题,还有SWT只在Windows上进行了优化且并没有它的支持者所说的那么快,一些观察家也提到了这个问题。真的值得这么做吗?SWT开发是一个巨大的、不必要的开销,Eclipse Foundation的成员共同承担着。他们已经实现了第三代的Java2D但只是发现了延迟布局的好处。SWT很容易会成为7年前的AWT。所有这些和Eclipse正在让Eclipse使用者感到倒退。

  回首这几年,java开发工具“你方唱罢我登场,各领风骚数百天”。2002年,IntelliJ IDEA 得到了第12届jolt最佳开发工具称号;2003年,JBuilder得到了第13届jolt最佳开发工具称号;2004年,Eclipse得到了第14届jolt最佳开发工具称号;今年,第15届jolt最佳开发工具称号仍然被Eclipse获得。

  众多的调查机构研究表明Eclipse之所以如此受人欢迎,主要原因有两点:其一是开源,其二是采用可扩展的插件机制。事实上,这两点也正符合人类在现实世界的追求,开源意味着*开放,可扩展的插件机制意味着可持续的发展。

  Netbeans在这方面的特性似乎并不比Eclipse有太多的劣势。并不是说NetBeans和Eclipse谁更好,谁更优秀,只是想说一下看法,NetBeans 4.0,4.1是值得关注的。http://www.netbeans.org 上列出10大理由,至少有两点,能引进很多人的注意,

  1、完全基于ant的项目管理

  2、profile对项目运行进行监控

  哪个更快,我下了最新的jbosside1.5-preview(已经包含eclipse3.1M5a,为了提供和nb4.1相当的功能),和NetBeans4.1beta,使用sun jdk 5update2,jdk1.4.2(linux下用blackdown的jdk)。

  1、NetBeans启动比 eclipse要快得多。

  2、建一个项目, eclipse已经让我无法忍受。

  再来看看充满争议的swt和swing,

  1、swing可以借jvm来提高性能,就使用jdk5来说,eclipse gui 性能没有任何提高。

  2、swt 自称是native look&feel,这是唯一可以用来抨击swing的地方,但是就我使用的情况并不是如此,在linux绝大数主题不能很好的应用,有些主题是面目非,这类情况可以 www.linuxsir.org 的java 版找到。swt没有任何性能优势,这是swt 设计人员说的,不知道为什么到了国内出现 swt 比swing要快得多的结论。上面的文章还指出 swt 还是在awt 7年前的水平。jdk5的gui完全重写,默认已经非常漂亮,速度快了很多(按sun的说法提高了一个数量级,虽然觉得有点夸张,但在我机器上nb启动至少比使用jdk1.4.2快了一倍)。java GUI在java 5中得到彻底的改变,jdk 5内置win,linux(gtk2,motif),mac 系统界面,java 5 可以通过xml配置文件轻而易举的使用 Skin ,可以参考ibm网站的一些文章。

  值得关注的NetBeans细节,

  1、方便的国际化功能。

  2、完整的j2ee开发,web.xml可视化编辑,ejb向导式的开发。(这些只在wsad中有)

  3、基于ant的项目管理,方便管理 ,移植 。

  4、完整的中文支持(中文界面,帮助,教程)。

  5、数据库,服务器的集成(还在开发中)。(在eclipse要一大堆的插件)

  我身边也有很多人用eclipse,大多数人和装linux一样,只是一个摆设而已。我也装了eclipse,同样也是一个摆设。我在公司用jbuilder 9(是不是太落伍了?)用来写纯java ,其它 jsp,html ,css,js 都是用editplus完成。

  本站搜集了一些在国内诸多论坛的争论,整理后附上。还是一样的话,并非是说netbeans 和eclipse哪一个更好,只是就目前看来,似乎netbeans有着很多不好的影响。竞争是件好事,尤其是作为开发工具,其最终目的应该是怎样,可能你我都清楚。

  "单纯的ide来讲,netbeans4.1真的太优秀了,j2ee开发比eclipse方便得多,速度方便eclipse3比2又慢了一大截,而nb得益于jdk5的图形库的重新设计,在jdk5下速度比以前的nb快很多。"

  "从平台的角度,eclipse占了优势,基于的eclipse东西太多了,这也导致eclipse的混乱,eclipse一直缺少统一的plugins管理机制,而各厂商各自为营."

  "netbeans4比以前有了许多的改进,对ANT J2EE等的支持有了很大改进。对的web开发的支持也比基本的eclipse强了。"

  "netbean还是不错的,但是eclipse的插件确实太丰富了,而netbean这方面差很多,插件较少~~~"

  "现在因为工作需要从idea转到eclipse上来,感觉使用eclipse很不习惯了,还需要安装一堆的插件,插件之间还经常出现冲突,各个插件支持的eclipse版本也不一样,很不方便的。"

  "可以说,Netbeans比Eclipse容易使用。而且功能较Eclipse(没装plugin)强n多。但是,eclipse的plugin对版本的要求还是蛮严格的。呵呵,未必是好"

  "我不知道eclipse是不是“越变越慢“(我刚开始用Eclipse已经是3.0),但它的确很慢,在我的C4 2.4G+512M的机器上感觉比JBuilder2005还要慢。平时看别人说Eclipse快,我也觉得奇怪,可能在说2.X版吧。不过我没用过"

  "快慢一般都是跟功能成反比的. 功能越强大的东西, 运行越慢. Eclipse 快嘛? 不绝对, 我装过基于 Eclipse 2 的 WSAD 5, 什么都能做, J2EE, UML, GUI DESIGNER, JSP, 启动完了比 JBUILDER X 还慢, 安装要占 1GB 多空间. 如果说 Eclipse 快, 那我认为 JCreator 更快, 它快是因为它本身(不装其他厂商的插件的情况下)功能很少, 只能做 JAVA 类. 如果装上全套的插件, 例如做 GUI, JSP, J2EE, STRUTS, MyEclipse... 你可以看到它占的内存逐步上升, 相当缓慢. 而且说实在的, 装插件的过程是个十分痛苦的过程.最后还是这样: 功能越强大的东西越缓慢. 最后嘛, 还是希望大家多提高自己的水平, 不要在这些争论上面费太多精力."

  "我已经看到开发人员为它的性能问题而抓狂了。这个问题已经持续了一年多了,它使我相信SWT存在主要设计缺陷,所以我支持Sun用Netbeans继续做下去。"

  "记住,IBM理论上构建SWT是因为他们认为它比Swing快。他们还宣称本地工具更可靠。现在,Eclipse出了问题。SWT并非标准J2SE的一部分。SWT跨平台时会引起本身可靠性和性能的变化。在某些情况下,Eclipse的开发人员要面对很显然的情形,即Swing在Linux平台上比SWT性能高。而为了完整性而添加新的功能时,SWT就不应该再使用。结果并不好。SWT在Linux上性能不高或者至少不稳定,而Swing比SWT性能好,至少表现的是这样。"

  "从我开始比较SWT和Swing到现在已经过去一年半了,而Eclipse和SWT发布也已经是三年前的事情。Swing在继续被采用,它的成长得益于JVM的改进,更高质量的Swing版本以及更好的Swing工具,还有调试客户端Swing程序的新方法。SWT却没有被应用程序采纳。那些想让SWT不止是Eclipse中创建的一种模块的人相当失望,或许被吓晕了,因为居然几乎没有程序是用SWT写成的。SWT公社主页只提供四种应用,它们在"Games and Applications"下面。而四种之中,Azureus是唯一流行的。他们忘记了Eclipse和Haystack。另一个SWT相关网站是onEclipse,它更好的设计了SWT应用程序,但也只提供了12种。SWT发布三年来也只有这么少的数量。与Swing相比,这真是Swing应用中一个非常非常小的子集。以SWT为基础构建非Eclipse相关应用是几乎不可能的。我怀疑Thinlets或者早期Microsoft的WFC工具如果使用了这两种工具创建的应用程序的话,肯定会更流行。"

  "开发人员在选择NetBeans。如何选择?NetBeans 4.1 Beta使它更易用的特性是可以在NetBeans中载入Eclipse项目"

  "竞争对NetBeans.是一件好事。NetBeans团队对创建有竞争力的IDE非常感兴趣。他们已经完全把NetBeans变成一个快速、用户友好而且特性丰富的开发环境。开发人员正在关注并转向最新的版本。"

  "当一些媒体还在关注Eclipse小屋美观的外表以及有多少人从二楼阳台上挥手时,却很少有人注意到屋子里一楼已经着火而且已经有人从后门逃生。"