Topic: NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受

  Print this page

1.NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 Copy to clipboard
Posted by: hdwangyi
Posted on: 2006-01-13 21:20

今天在NetBeans的网站上看到了RC1释出,各位Netbeans的爱好者可以下一下,本人正在下载中。。。http://www.netbeans.org

最近终于升级了手头的本本到了PM1.7,1G内存,不用等着单位的台式机了。正在做一个教学系统,用的是Spring+Hibernate+AJAX,原来用的开发工具是Gel+XDoclet+Dreamweaver,GEL用来写Java代码,XDoclet用来生成Hibernate Mapping Files和Spring配置文件,Dreamweaver用来做页面。已经快完活了。等项目完成了,在这里和大家分享一下经验。

因为升级了本本,所在在家也可以干活了Big Smile。由于机器配置比较好,所以就拿起了各种大头的基于Java的IDE,比较了IDEA5.02、Eclipse3.1+WTP1.0、NetBeans5.0B2。由于手头的项目用ANT构建,所以基本上不依赖于任何IDE,将它植入这些IDE很容易,因为它们都支持ANT。

2.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: hdwangyi
Posted on: 2006-01-13 21:24

先说说IDEA5.02,这个真是如很多人所说,是“Coding的不二选择”。启动之后,发现5.02比5.0在启动时改进很多,启动的速度很快,扫描文件的速度比5.0快了不只一倍。在IDEA中建立了两个模块,一个是Java模块,用来显示源码;一个是Web模块,用来显示JSP页面。在Java模块中,利用包视图,可以很方便地观察Java代码的构成,在写具体代码的时候,IDEA提供了各种Java代码辅助真可谓是又快又好!IDEA的速度和稳定性是其他两个IDE没法比的,毕竟是商业的IDE啊。
IDEA的Web模块我倒是觉得不太理想,原因有以下几点:

1、IDEA对JSP的提示不太好,尤其是JSP的自定义标签。为了简化引用的标签代码,我把所有引用标签代码的<%@taglib...%>放到了一个独立的inc文件中,然后在每个需要使用这些标签的JSP文件中用<%@include...%>指令引入这个INC文件。但我发现这时IDEA的自定义标签的代码提示就消失了!感觉不爽。
2、IDEA不能感知我利用<%@include file="filename"%>包含进来的JSP页面中定义的变量,总是提示不能解析这个或那个变量。
3、IDEA提供的JSP预编译功能不太好用,经常把一个能够正常运行的JSP页面标记为含有错误的网页,弄得编辑器的右边总是红红的(错误提示)Embaressed

从整体上说,IDEA的JSP编辑器还是不错的,比如可以提供JavaScript代码的提示,但我做JSP主要还是在Dreamweaver里,项目组的其他人用Dreamweaver做界面,我利用JavaIDE调整这些JSP,加入必要的动态代码。因为项目采用了SpringMVC,所以使用了大量的SpringMVC的自定义标记,这点上IDEA的表现有些不好。但IDEA的ANT支持和Java代码提示真的一流!

(缩略图,点击图片链接看原图)

3.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: hdwangyi
Posted on: 2006-01-13 21:25

再说说Eclipse3.1+WTP1.0。不知道为了什么,在Eclipse3.1的ANT视图中,双击ANT的Target时,总是让我选择要运行哪个ANT文件。虽然项目中的ANT文件是两个,但主要由一个主ANT文件调用另一个ANT文件中的目标,所以根本就没有必要出这个选择对话框,多让我按了一次鼠标,感觉很麻烦。Eclipse的代码提示也不错,在某些方面比IDEA还要方便一些。不过总体上讲,在Coding界面的Look&Feel和具体的一些使用功能上还是和IDEA些许差距:比如各种视图的显示方式、代码和改错提示的速度、未被使用的引入类等方面。

WTP插件提供的JSP编辑功能一般,还不如IDEA,至少IDEA提供了代码折叠,这在编辑一些大的JSP文件时很有用,但WTP没有提供对应的功能。毕竟是个免费的午餐嘛!在显示自定义标记这方面,WTP的表现和IDEA类似,另外,WTP也提供了JavaScript的代码帮助,不过做的没有IDEA那么好。

总的来讲,Eclipse+WTP表现一般,Eclipse在Java代码的显示和提示功能上较为优秀,但Eclipse在代码提示上的设计上有一个最失败的地方:一旦你在输入代码时打错了字母,所有的提示就都没了,如果想再次得到提示,必须从头开始重新输入代码,这一点比其他IDEA、Netbeans都要差,而且从2.1.X到3.X没有任何改进。另外,顺便说一下,个人感觉Eclipse的这种每个功能窗口(比如包导航窗口、ANT窗口、资源窗口、控制台窗口等等)固定显示的界面看起来有些落后了,虽然也提供了可动态显示或隐藏的Fast View功能,但感觉这个功能现在限制太多,比如只能同时在整个Eclipse界面某个边上放一个Fast View,感觉很古板。

(缩略图,点击图片链接看原图)

4.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: hdwangyi
Posted on: 2006-01-13 21:25

最后谈谈Netbeans。Netbeans出的比Eclipse要早,但早期的发展却落后Eclipse许多。不过我觉得5.0版本是一个真正的转折点,不夸张地说,Netbeans5.0在整个界面给我的感觉胜过了Eclipse。Netbeans所有的功能窗口均可以直接固定在主编辑窗口的周边,也可以自动隐藏在主编辑窗口的四个周边的任意一边。这个功能在执行ANT目标时非常便于观察执行的结果,而且还有效的扩大了编辑窗口的可视范围,同时,编辑窗口和代码字体的默认调色、大小搭配非常协调,在我的1024*768的本本上看起来非常舒服,并且多个编辑文件的切换标签的安排也是一顺排在编辑窗口的上边,丝毫不影响代码的可视区域。在这一点上,Netbeans超过了IDEA和Eclipse。举个例子来讲,Netbeans提供了Files窗口,这个窗口中的所有的文件(项目中的文件主要是HTML、JSP、XML文件、Java文件、图片文件、文本文件)的图标设计设计的很漂亮,并且在显示时没有那些层次线,让人看起来一目了然。另外,Java代码窗口提供了两种代码显示方式:列表-这个方式和Eclipse的显示方式一样,以包为单位显示类;树-以包中的节点为单位显示类,这个显示方式类似于IDEA。用户可以在这两者之间切换。我相信,以前说Netbeans界面丑陋的人肯定应该闭嘴了。现在的Netbeans的整体视觉感受上绝对是在三者之中最好的,这也为Swing VS SWT 之间的竞争提供了一个强力的注脚。

Netbeans在JSP的代码支持上是三者之中最好的,不仅有代码折叠功能,而且项目中的JSP页面均可在IDE中正确地给出各种代码提示,而且提示的内容要远远优于WTP和IDEA,在这一点上Netbeans一直做得不错。唯一遗憾的是,在Netbeans中打开JSP页面时比较慢,虽然我的笔记本是迅驰二代1.7,1G的内存,还是不快,而且极个别的时候还造成整个IDE都失去了反应。考虑到我用的是beta版,估计在正式版中会去掉这个毛病。

在ANT支持上,NetBeans还算可以,但没有IDEA那样有一个专门的ANT窗口。这一点上我觉得不如IDEA方便。不过在Netbeans里可以将ANT目标作为快捷方式加入到工具栏上,这在某些方面弥补了这个不足,但毕竟还是不如显示一个专门用来执行ANT目标的窗口来的方便。

(缩略图,点击图片链接看原图)

5.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: hdwangyi
Posted on: 2006-01-13 21:26

另外,据我对IDEA、Eclipse和Netbeans观察,这几个IDE对执行ANT的目标的方式应该有所不同。我在执行ANT目标时打开任务管理器,监视IDE在执行XDoclet任务前后内存的变化情况。之所以这样做,是因为据说XDoclet任务存在着内存泄露,所以一旦基于Java编写的IDE在同一个Java虚拟机中执行XDoclet任务,那么泄漏的内存就得不到释放,不用多久IDE就会因发生内存溢出而崩溃。这应该是事实,因为我曾经用Lomboz和JBossIDE做过EJB开发,这两个Eclipse插件都用到了XDoclet生成EJB的部署描述文件和其他的一些文件,但只要运行XDoclet达到了一定次数,Eclipse就会崩溃。我在JBossIDE的论坛上看到过这个问题的讨论,当时JBossIDE的项目负责人指出在当前的Eclipse2.x版本中这种崩溃是不可避免的,因为Eclipse2.x只提供了在同一虚拟机中执行ANT的功能。他说未来的Eclipse3.0中会解决这个问题,就是让两者运行在不同的Java虚拟机中。看起来好像在Eclipse3.1中这个问题确实是解决了(我也不能确定,在Eclipse3.x的新特性中没有看到这个更新),因为我发现在Eclipse3.11+WTP1.0在运行完XDoclet任务后内存基本上可以下降到了运行任务之前的水平,但用的时间长了也会发生上升现象。IDEA比较好,在运行完XDoclet任务后可以看到内存迅速地回落,多次运行XDoclet也看不到内存使用量的上升。在这方面LinuxChina应该是专家,如果看到的话请多指教。

运行Netbeans时我看不到内存的回落,而是保留在运行任务时的峰顶值。但多次运行XDoclet任务之后,也没看到内存再有大幅度的上升。具体Netbeans采用了什么机制,我就不敢妄言了。也请坛子中的高手指教一二。

6.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: hdwangyi
Posted on: 2006-01-13 21:26

在内存的占用上,IDEA最少,我在执行任务时始终是在480M左右;Netbeans和Eclipse差不多,基本上在580M左右,用了一端时间后,都会升到700M左右(测验时都运行了Tomcat4.1服务器)。

在启动时间上,IDEA5.02~(Eclipse3.11+WTP1.0)<Netbeans,Netbean最慢,我的机器上大约需要25s左右,应该说是有待改进的。

在代码和改错提示的速度上,IDEA5.02〉Eclipse3.11〉Netbeans。

综合而言,我觉得对于我这种拥有较大内存和较好CPU的人来说,NetBeans5.0的最终版值得期待。由于目前正集中精力进行前台页面的代码工作,所以我现在就在用Dreamweaver2004和5.0beta继续原有项目开发,虽然在Netbeans中JSP打开有些慢,但由于有各种代码提示和快捷方式,所以我忍了ConfusedConfused

以上是我的一些使用感受,不对的地方欢迎大家拍转Angel

7.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: zcjl
Posted on: 2006-01-14 01:00

但Eclipse在代码提示上的设计上有一个最失败的地方:一旦你在输入代码时打错了字母,所有的提示就都没了,如果想再次得到提示,必须从头开始重新输入代码

Eclipse有个叫做代码提示的功能,有个默认快捷键的,当然,我一般都改为自己习惯的方式。
当敲错了字母,只需退格删除,然后使用快捷键,代码提示就会出现了,不用全部删除、重新输入

8.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: zcjl] Copy to clipboard
Posted by: hdwangyi
Posted on: 2006-01-14 09:38

zcjl wrote:
Eclipse有个叫做代码提示的功能,有个默认快捷键的,当然,我一般都改为自己习惯的方式。
当敲错了字母,只需退格删除,然后使用快捷键,代码提示就会出现了,不用全部删除、重新输入

毕竟还是要按快捷键,在IntilliJ和Netbeans里是不需要的,只要删除了错误的字符,代码提示就会显示出来。

9.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: ditty
Posted on: 2006-01-14 12:40

LZ废了不少心思啊,hoho
精神上鼓励一下~

10.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: orchidflower
Posted on: 2006-01-16 11:18

不错不错,搂主真是用心地去比较了。对大家应该都是有帮助的。
不过偶还是暂时坚持在Eclipse阵线了,还没有什么重大理由让偶换阵线,呵呵

11.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: 烂泥
Posted on: 2006-01-17 22:47

Eclipse我个人感觉它的有一个很大的优点是很多OpenSource的项目都有专门对Eclipse的支持. 但是在默认安装下 Eclipse比 NetBean 要消耗大一些内存,而且也比较慢,而且最要命的是Eclipse的插件管理真是头痛~

12.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: mfc42d
Posted on: 2006-01-20 11:14

netbeans对jstl的支持不错,jsp的支持远好于idea

13.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: mfc42d] Copy to clipboard
Posted by: linux_china
Posted on: 2006-01-20 12:42

如果你说一个东西不好,你必须是这方面的专家。 IDEA号称是最好的 Jsp Editor, 不会徒有虚名的 Smile
我想你对IDEA的了解还不够多,单纯Jsp重构和inspection,这个特性其他工具还都不支持。

14.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: 烂泥] Copy to clipboard
Posted by: lxh_ming
Posted on: 2006-01-20 14:29

就我看来,idea应该是最好的Jsp Editor,不过也有不少问题。
jsp的formater好像有问题,有标签的文件格式化后,页面会出错,没仔细看是什么原因
尤其是js函数里面嵌套jstl标签的时候,提示是错误的

15.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: lxh_ming] Copy to clipboard
Posted by: linux_china
Posted on: 2006-01-20 16:54

试试 IDEA 5.1,这些问题早就不存在啦,Jira上这些问题早就被fix啦。javascript ,jstl ,EL混合,都不会有错误,附件就是混编的显示界面。IDEA下一个目标就是做成更好的JS Editor.
个人觉得任何工具在处理大文件都会有点问题,如Jsp, 我相信IDEA在处理3000行以上的Jsp(包含javascript code, css, scriptlet, taglib and son)时,性能和表现可能不如人意。 开发时选择Tiles或其他界面的框架可能不错,将大的文件细分划小,这时开发就会方便很多,也方便维护和管理。

16.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: gxdragon
Posted on: 2006-01-25 10:20

内存泄漏?呵呵,应该多看看什么叫做内存泄漏,很多时候都是操作系统对执行程序进行缓冲,并不是真正的泄漏,你第一次打开eclipse和第二次打开,可以看到速度的巨大区别

17.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: hdwangyi] Copy to clipboard
Posted by: lxw790514
Posted on: 2006-01-25 17:10

楼主说的工具没用过,本人用过eclipse+myeclipse和jbuilder,现在还是觉得
jbuilder比较好,eclipse的插件,即是优点,也是缺点,各种插件功能强大,可是有些插件又相互冲突,比如myeclipse和lomboz,另外插件的版本,管理都要花些时间,真是成也萧何,败也萧何.

18.Re:NetBeans5.0RC1出来了,同时谈谈和IDEA、WTP的使用比较感受 [Re: gxdragon] Copy to clipboard
Posted by: hdwangyi
Posted on: 2006-01-26 11:32

gxdragon wrote:
内存泄漏?呵呵,应该多看看什么叫做内存泄漏,很多时候都是操作系统对执行程序进行缓冲,并不是真正的泄漏,你第一次打开eclipse和第二次打开,可以看到速度的巨大区别

内存泄露和操作系统对执行程序的缓存是两回事。Window系统会在System32目录中建立DLL缓存加快程序的加载这一点不假,但你所说的Eclipse两次启动的速度之差并不是系统在内存中为Eclipse做了缓存,而是Eclipse3.1.x自身对插件的加载作了优化,这种优化需要在首次启动时多耗费一些时间。而对于运行在同样的Windows版本中Eclipse3.0.x,你就看不到重复启动时速度的巨大提升,这说明真正的优化不在Windows而在于Eclipse自身的改进.

不要以为JVM能够自动垃圾回收就不会存在着内存泄露。实际上,很多著名的Java程序,如ANT、Spring框架、Webwork、Hibernate的某些版本都有内存泄露的问题,你可以在它们的版本升级的bug列表中读到作者对这些问题的修复。造成Java内存泄露的原因有很多,其中一些原因是因为在编写代码时调用了JVM底层的一些机制,或是对某些资源回收不当,如多线程中的某个线程不能正确得到结束、数据库资源得不到正确的释放等等。

当然,目前的操作系统均可在某种程度上防止这种内存泄露,因为在整个进程结束时,操作系统将强制回收为该进程分配的内存、线程等资源。但如我文中所述,如果某个线程在执行过程中得不到终止,那么每次在重复执行类似的线程时都会造成资源的占用而得不到释放。这种资源的占用如果运行在同一个JVM之中,那么只有在该JVM停止运行时这些资源才能被操作系统回收。当Eclipse与XDoclet运行在同一个JVM时,就是这种情况,造成的后果就是Eclipse的JVM虚拟机占用的最大内存被耗尽,Eclipse崩溃退出。其实大家都在反映Eclipse的插件问题,很大程度上就是插件在执行某些操作时发生了内存泄露,以致于Eclipse受到了影响。因此,Eclipse的插件机制虽然为功能的扩展带来了方便,但由于编写插件的人水平不同,所以很难保证这些插件不对Eclipse造成不良影响。

要解决Eclipse和XDoclet的问题有一个比较简单的方法,就是不用一些插件提供的XDoclet和ANT功能,而是在操作系统的命令行中运行ANT目标。这时ANT和Eclipse就是运行在两个虚拟机里了,而当命令行运行ANT之后,该进程启动的虚拟机也会结束,这样就不会造成内存泄露了。

Eclipse的插件思想很好,加上它的开源机制,使得Eclipse本身成为一个类似操作系统的一个平台,从而使得IDE的开发发展到了一个新的阶段。每个插件就好像运行在这个平台的应用软件,为各个不同用户提供所需的功能。虽然这些插件会出现这样或那样的问题,当随着Eclipse版本的改进,这些问题也在得到解决。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923