Ubuntu Feisty 上使用Eclipse Europa和NetBeans 6 M10手记
关键字: Ubuntu Europa NetBeans 随着Eclipse Europa强势发布,预示着从去年开始就炒的沸沸扬扬的IDE大战Eclipse一方再次占得先机,遥遥无期的NetBeans6正式版已经让我们等得 不耐烦,跟着用过M7 M9 M10,都是很失望的结果,像我这种离开Eclipse就歇菜的选手(现在大多数开发者都是这个情况),则一直关注着热闹的开源IDE市场的发展动向,所 以Europa NetBeans6 M10我都是第一时间抢鲜试用的。由于我是使用Ubuntu Feisty作为操作系统,所以以下的开发手记都是针对两款IDE在Ubuntu上的表现。
1.Eclipse Europa JEE
A.由于工作的需要,在使用Eclipse 3.1和Eclipse 3.2的时候都会用到MyEclipse的某些功能(Hibernate映射文件和JSP代码格式化),导致Eclipse的运行速度受到很大的拖累,一 直都不推荐大家使用MyEclipse,目前在视盗版于无物的国内MyEclipse俨然成为一个全新的IDE,很多人甚至认为Debbuger功能是 MyEclipse提供的!所以在拿到Europa的第一时间我就发现了WTP的支持,一直以来JSP Editor都是IDE不太支持的东西(MyEclipse那个龟爬一样的JSP Editor我都是不用的),其实我们要求也不高,只要语法高量、格式化等简单的功能我就很满足了,WTP应该是非常的胜任这项工作(WTP还有更多功 能,不知道有谁体验过)。
B.接下来看看Europa里面带来的21个令人兴奋的子项目(http://www.eclipse.org/projects/),BIRT、 Equinox、SOA,每个都是重量级的东西哦,还包括一些可能是规模略小的东西,但是仍然可能会成为我们日常开发中不可缺少的工具,BiRT 2.0的发布以及Equinox开发的流行都会对今后的软件开发产生非常大的影响,有IBM和Eclipse 基金会的强大支持,BIRT足以令人期待,而Equinox在Eclipse上的成功也将为OSGi标准在Java业界的推广带来足够的推动力,前几天在 Spring官方网站(www.springframework.org)的主页上看到了Spring在新版本中提供了对OSGi的支持,Adrien大 叔超过1个小时的激情讲述都在为我们描绘OSGi的美好蓝图,让我们一起关注OSGi(http: //neilbartlett.name/blog/osgi-articles/),也许Eclipse下的21个子项目会创造出10个以上的专职开发 工种呢。
C.Eclipse Linux gtk的计划使广大Linux用户受到了最实实在在的好处,它让Linux上的Java程序员可以和Windows上具有一样的开发效率,也展现着IBM 对Linux的野心,在比较 试用Eclipse和netbeans的时候心里就会有这样一个想法:如果java的老爸不是SUN而是IBM,世界会是个啥样子?
D.说些Eclipse目前不大好的地方。Eclipse肥了,而且是越来越肥,Eclipse3.2在我的机子上跑要吃掉200M内存,而 Eclipse-Europa就要300M,我用的Eclipse-Europa-JEE居然创纪录的达到500M,为了能正常使用它,我被迫给本本升级 到2G内存,这招数怎么和Vista促进硬件销售很相像呢?Eclipse SWT Designer,是商业软件,这个令偶很不爽,尽管有免费版,但是阉割的也太厉害了,连TextArea都不支持(还有很多不支持的东西),没天理呀! 不知道Europa Nebula项目能不能满足我们对SWT开发的需求,估计以后就要靠它了。
2.NetBeans 6.0 M10
虽然离NetBeans 6正式版发布还有段日子,但是都已经Milestone10了,不会再在接下来有什么翻天覆地的变化吧?不过我还真希望它能有什么脱胎换骨的变化,否则在Eclipse强大的用户基础面前,NetBeans想突出重围想必是非常困难。用NetBeans目前仅仅停留在Swing的使用上,因为它有还能勉强用的可视化编辑器,至于成熟度实在不敢恭维,再有它的的各种组件都会让人有撞墙的冲动,特别是对Eclipse过来的用户,CVS、快捷键(虽然我都使用Emacs Mode,但是很多时候NB的快捷键多比较脑子进水)、包管理还有Swing那别扭的界面,都足以令人压抑。
A.终于是支持UTF-8编码了,而且是默认的,也不用像在M9一样要手动去改配置文件,但是确有更多隐藏的编码问题。做了一个很简单的桌面程序,但是发现原本在M9时好用的东西跑到M10里面不好用了,界面一出来就是乱码,而且是在编译好的jar文件运行时出现,平时调试的时候不会有乱码……这个真是超级烦躁,每次编译的时候控制台都会出现warn,
- Warning: Cannot convert string "-b&h-luxi sans-medium-r-normal--*-140-*-*-p-*-iso8859-1" to type FontStruct
- Warning: Cannot convert string "-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1" to type FontStruct
搜了很多地方,但是并没有找到满意的结果,主要就是JVM中缺乏映射字符集,改起来也满麻烦的,需要改jvm下一个fontproperties的配置,无奈之下,把所有的控件的字符都换成了微软雅黑才搞定,但是字体就比较难看了,没办法。
B.令人疯掉的GroupLayout,M10中与前面的版本又有了新的变化,开始使用一个新的GroupLayout来做设计器的布局管理器,同样是在调试的时候可以运行,然后运行编译好的jar文件就会出现 的异常。十分的可恶,搞了我好久,到网上找,多是说NetBeans5.5的问题,回答是将Swing扩展库加进去就可以,但是怎么搞都不行,手动添加也不成。后来在反复的寻找和尝试中,终于找到了问题:选定JFrame文件,然后进入Inspector视图,再进入Properties,然后找到Layout Generation Style,选择Swing Layout Extention Library,真的不是一般的绕……
C.郁闷的Swing,Swing走到今天,感觉已经在逐渐走上AWT的老路,虽然SUN仍然在力挺,但是已经感觉没有以前那么坚决,在M10发布的同时也开始不再推荐使用NetBeans来做Swing的编辑器,而Swing缓慢的速度、别扭的界面都不怎么讨人好,NetBeans就是第一个受害者,启动速度慢,而且怎么看怎么别扭,严重降低开发体验。还有一个在Linux上使用令人诟病的地方,就是Swing同Beryl、SCIM输入法的冲突问题,尽管修改一些配置可以避免,但是它仍然会时不时的出现错误,经常都是在做了一个略微大一点的动作之后再打字就死活都打不进去,十分的令人气愤!真是不知道Swing怎么来顶起Java的桌面市场呢?
D.性能方面,NetBeans有一个好处,就是直接继承了Profiler,但是有点搬起石头砸自己的脚的意思,启动后的NetBeans是40M左右,但是在工作一段时间以后,就会一直增加,我用到多的时候能到200M,但是我只是跑一个连数据库都不要连的Swing小程序哦……这可能也是我用Eclipse的习惯问题?Eclipse是加载起来就300-500M,然后就停在那里不动,结果感觉NetBeans是在内存泄露,HOHO。还有就是M10变得更肥了,集成的glassfish很少听说有人在用,一个完整版下来要装500多M,我可怜的硬盘那……
由于本人不是做桌面程序开发的,更不是用NetBeans的熟手,只能凭借自己的浅薄体验来说事,但是个人感觉NetBeans实在不会讨人喜欢,虽然M9发布时JRuby的支持曾经一度引起大家的广泛关注,但是脚本语言用不用这种重量级的IDE都还是有商量的,何况NetBeans最该力挺的是它自己的Java、JSF、Swing产品线呀。M10里面有了很多的改进,比如终于支持不区分大小写的代码助手、默认UTF-8编码等积极的改进,但是还莫名其妙的修改了不少配置,这不是给大家找麻烦么?果然应验了那句“SUN的理论天下无敌、但是工具用着却让人撞墙”的言论,居然可以一直保有这样的风格,还真是有个性……至此我的NetBeans6 M10和Europa的试用告一段落,我会继续使用eclipse3.2了,但就目前的情形来看,Europa足以引领Java界的新潮流,而NetBeans就得继续举办各种赠送iPod的大赛(详见CSDN)来提升人气了。
在朋友的提醒下最近开始学习OSGi、Eclipse plug-ins、Eclipse RCP这方面的知识,随着RIA的火爆,富客户端应用带动Eclipse RCP再次成了开发技术的热门,随着IBM几条重要的产品线Lotus、Rational等都开始采用Eclipse RCP作为开发平台,还有许多知名厂商也逐渐向Eclipse靠拢,其中就包括Weblogic Workshop,Eclipse已经不再是一个简单的Java IDE,而是一个平台,一个标准,随着Eclipse的成功也会带动其基础架构OSGi的普及,两个强强联手的东西一定会给我们带来更多的惊喜,那么现在正是时候补充自己OSGi、Eclipse plug-ins的时候!
- 21:58
- 浏览 (1701)
- 评论 (10)
- 分类: Lots of IDE
- 发布在 Ubuntu For Fun 圈子
- 相关推荐
评论
学习了~~~
学习了~~·
你说的没错,我认为NetBeans有几个比较大的特点:
1.NetBeans对标准的支持,这个没谁能比,毕竟是SUN自家支持的东西。不过我只是做做Spring、hibernate这种,对J2EE标准没那么敏感。不过考虑到很多做EJB开发的开发者都会优选workshop,WSAD,JBuilder等等,跟标准就显得不是首要问题。
2.NetBeans都是自己开发,而不是跟着Eclipse那样开源社区的搅和,插件的稳定性得以保证,但是这样也不完全是好事,我们是吃开发这口饭的,我是还没到坚持开源纯度的水平。而反观Eclipse,正因为有庞大而活跃的社区支持,它才有更多具有价值的应用。
3.正如你说的,Swing的确是个纯的开源软件,eclipse已经被越来越多的商业软件使用,不过这点,个人认为是双刃剑。单纯的开源没有利益的保证和驱动,很可能生存问题都大,但是Eclipse的成功则是为开源找到了一个很好的出路。
至于你提到的SWT实现的问题,我还没有实际的工作机会去开发Eclipse RCP方面的东西,仅仅是自己关注而已。而且SWT目前仍然非常复杂,而且目前Eclipse的一个问题就是它插件的兼容性,很多插件都跟不上版本的发布,甚至是停止开发,以前没考虑过,这也许和你提到的SWT本身的问题有关,不过个人仍然看好SWT,毕竟大厂商都在贴近Eclipse。
现在NetBeans6已经发布beta2了,我考虑等正式版的realease了,呵呵,M10已经从我的机子里面移出,用M9、M10我也是为了尝鲜。其实我的抱怨主要集中在Swing、NetBeans的易用性上,因为易用性是很影响技术选型的,虽然Swing有很大改观,但是在业界还是没有得到足够的认可,那么这个结果就是有如EJB3目前在国内的情况:叫好不叫座。
总之我还是很期待NB6正式版的发布的,现在就连JDeveloper也宣布开源来凑热闹,这个IDE之争会一直延续下去,说不定明年更精彩。
不仅在新标准支持方面NB走在了其他工具的前面,在很多方面,NB自有自己的长项。以Web开发中的JSP这一块来说,即使是商业化的IDEA和MyEclipse都不如NB在某些方面做的好。就拿对于自定义的TAG标记的支持上来讲,MyEclipse一直到最近的6.0才有了支持,而NB早在5中就可以支持自定义TAG文件的编写和TAG标记的代码提示;如果使用MyEclipse编辑JSP,它经常会发生一些莫名其妙的现象,并且速度上也很难让人恭维,WTP也存在着类似的问题;而NB的代码提示即智能又快速,在很多方面都优于MyEclipse、WTP和IDEA,有时很难想像NB是一个免费的IDE,居然能把JSP的支持做的这么好。
再比如,在Java代码编辑方面,NB可以不用引入某个类所在的命名空间,就可以提示相关类中的方法和字段,而这一点Eclipse直到前不久发布的3.3中才支持。
另外,如果你用到了调试功能,就会发现NB在目前的IDE中是非常先进的,尤其是在Servlet和JSP的调试方面。举个例子,Eclipse在调试时,如果对应的类没有源代码,它也会照常进入这些没有源代码的类方法中,而一般情况下,我们调试的目的只是为了查出自己代码中的问题,不想也不需要调试所带类库中的方法。NB则会智能地跳过这些不带源码的类库中的方法,直接进入到你所编写的源代码中,这一点在调试大型的Web应用时非常好用。
你说的NB似乎存在内存泄漏的问题,我一直没有碰到。Swing自身确实有些Bug,比如,一个组件如果使用了TitleBorder,并且采用了非Metal外观,在某些情况下会出现高内存占用的情况。但实际上这个Bug却是通过使用NB附带的Profile调试工具发现的。NB自身是相当稳定的;反观Eclipse,到是有这方面的问题:我在3年前,使用Eclipse开发基于Spring和Hibernate的项目时,用的是XDoclet产生配置文件的方法,每次产生配置文件后,系统的内存就会逐渐上涨,大约工作半小时后,Eclipse就会报告自己要崩溃,不得不退出重启。查询Eclipse的邮件列表,说是由Eclipse2.X和ANT共用同一个JVM造成问题,当时没有太好的解决方法,只有等待3.x中才能解决。所以,我就只好直接在命令窗口中直接敲ant,在Eclipse中做代码编辑,感觉很不方便。后来改用NB导入我的项目,每次生成配置文件后,虽然内存也会上涨,但到了一定程度后就会停下来,从来也没有出现过IDE崩溃的问题。
Swing虽然有一些Bug,但不能否认,她的设计体系很优秀,在目前硬件性能逐步提高的条件下,Swing也越来越多地被用户认可。Eclipse采用的SWT虽然有优点,但Bug也肯定是避免不了的。除去目前的Eclipse,可能最常见的大型SWT应用就是BT下载工具Azureus了,有兴趣的朋友可以看看他们向SWT团队提交的Bug列表,那可真是相当的多,很多问题不得不等待SWT团队在更新整体版本后才能得到修正。普遍的意见是,使用SWT的开发者,对这个类库的满意度随着熟悉程度的增加呈反比,而Swing则恰恰反过来。我看到过很多优秀的Swing应用,但脱离Eclipse的SWT应用却很少。比如我常用的数据库工具squirrel就是基于Swing的,感觉它的速度很快,而且它的开发者非常活跃;原来有几个在03年建立的基于SWT的数据库开源工具,反而却在04年之后就没有更新了。
其实,自从JDK6之后,Swing已经有了很大的进步,其实个人认为SWT宣传的Native L&F真的没有那么重要,你可以看看,微软自己的Office,就没有采用Native L&F,怎么就没见人们抱怨它不是Native L&F。事实上,SUN一直没有停止宣传和推广Swing,而且还在大力加强对Swing的宣传和支持。在NB6当中,在Matisse设计器中加入数据库绑定功能就是明证。
我现在一直在本本上用NB5.5,有时候经常几天不关机(出门就将机器设为休眠),NB的表现一直很好,几乎没有出现过卡机的现象。
说了这么多,其实并不是为了证明NB就是比Eclipse优越,而是想说明,每个工具都有自己的强项,否则,在今天的竞争激烈的市场上,就不会生存下来。国外现在很多Java开发者都在用NB,她的用户量在快速壮大,这也是不争的事实。
至于楼主所说的NB6正式版发布遥遥无期,其实,象Eclipse一样,NB每个版本发布都有对应的计划日期,不是随意指定的。在NB的官网上,NB6正式发布是在今年的11月底。另外,我的感觉是,NB的开发者团队对用户提出的问题总是很及时的相应,在他们的Bugilla系统中提交的问题,团队做出反应的时间一般都在1天之内,这是我特别敬佩他们的地方。可以想像,有了这样一个善于倾听用户声音的团队,NB的发展肯定是相当迅速的。再有,M9、10有很多毛病是正常的,NB团队的策略是先添加功能,在进行其他方面的优化。我从NB4开始,到现在的NB5.5.1,发现NB的正式发行版确实比测试版在启动速度、代码提示方面要快很多,就拿现在刚刚出来的6.0Beta2,就比Beta1在启动和其他方面快了很多。
至于为什么现在大的厂商都支持Eclipse,原因很简单,就是Eclipse自身实际没什么功能,它把这些都留给了其他组织和厂商去做,这让这些商家有了在这个平台上有了盈利的可能。反观NB,则是在开源的基础上尽可能集成更多的功能,以方便开发者的使用。在某种意义上,我认为这更接近于开源的本质要求。
观察目前的现状,我认为NB已经在竞争中站稳了脚跟,她将和Eclipse长期竞争下去。这实际上对于所有的开发者都是件好事,如果一头独大,缺乏制衡,那末我们可能永远受箍于垄断不前的阴影下。
不过国内能用3年NetBeans的人也在少数,你主要是用NB做些什么呢?
发表评论
- 浏览: 90795 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
使用JS实现拖动 BBCode版
看下bbcode
-- by zjpsh -
Skype 大家一起来
我只是在windows下用过,还没有在ubuntu上用过,过几天尝试一下。
-- by xiaobin268 -
我的Emacs(Ubuntu下写C)
羡慕死你了·~~
-- by Emy -
使用JS实现拖动 BBCode版
用框架做简单
-- by fei1985 -
MyEclipse你搞什么
为了装逼,不用myeclipse
-- by fuwang






评论排行榜