NetBeans频出招 Eclipse何以应对

    技术2022-06-29  57

    最近Java IDE领域真是风起云涌。老牌的JBuilder已经风光不在。而最近几年火的不得了的Eclipse还没来得及体验“身处万人中央、享受万丈荣光”的滋味,就被Sun如法泡制的NetBeans给抢了镜头。现在Sun也想开了,放下了自己的架子来了个“全体复制”,将Eclipse的几乎所有的特点都搬到了NetBeans中。如插件、开源、免费、Web开发等等。看来Sun也学会IBM的招术了。既然在Java上挣不到什么钱,那就干脆来搅局。万一能浑水摸鱼捞上一笔也不错。最近有消息称,NetBeans和Eclipse在2007年都会推出各自的新版本,看来,今年Java IDE市场又要掀起一场腥风血雨的战争了。

      一、Java IDE惊喜不断,NetBeans和Eclipse在2007年将唱主角

      Java已经诞生十多年了,但长期困扰Java的一个问题就是它并不象C#、Delphi一样有一个象样的IDE来满足那些“浮躁”的程序员来开发软件。这一切一真到JBuilder的出现才结束。但由于Borland的种种问题,JBuilder在2003年被评为最佳开发工具后就象失去了防护罩的“太空堡垒”一样几乎被来自外部的攻击所摧毁。

      自从JBuilder失去了Java IDE王者的位置后,这个王位总得要人来坐。一直在旁的IBM对这个市场早就虎视眈眈,也许IBM心里说“JBuilder终于不行了”,就在这时,IBM将自已多年研发的Eclipse免费,开源,并给了开源社区很大的技术帮助。也许我们应该管Eclipse叫JBuilder终结者。Eclipse的出现给这个已经失去防护罩的“太空堡垒”最致命的一击。JBuilder从此再也没有从新升空的可能了。

      虽然这次战斗有些惨烈,但Eclipse却是IBM给Java IDE市场的最好的礼物,也是Java IDE市场的第一个惊喜。Eclipse自从成名后,一直到2005年都是风光无限。但到了2006年,Eclipse的喜悦似乎没那么强烈了。也许是Eclipse已经感到了来自Sun的威胁。

      虽然Java是Sun做的,但Java IDE却从来没Sun的份。尽管Sun有一个Java Visual Age,但这个东西其实就是个高级记事本。可Sun不会这么永远不甘寂寞。经过多年的努力,Sun终于推出了自已的新的Java IDE:NetBeans。这个工具的前身就是Visual Age。在NetBeans刚推出不久,由于NetBeans性能和功能上的原因,一直也没象Eclipse那么出名。不过在2006年,Sun推出了NetBeans5.5,这个版本不仅功能强大,而且性能得到了很大的提高。同时和Eclipse一样,也是免费开源的。

      自从NetBeans开始逐渐升温后,就开始和Eclipse分庭抗挣了。甚至在网上出现了很多类似于评论Eclipse和NetBeans最终谁能取代谁的文章。甚至有一些人从来没用过NetBeans或Eclipse,就将它们批得一无是处,真是可笑之极。

      在2006年,Eclipse和NetBeans谁都没有占到上风,但在2007年,NetBeans将推出人们宣传已久的NetBeans6,而Eclipse也将推出Eclipse的最新版Eclipse3.5。虽然现在还看不出谁能成为IDE的主宰者,但有一点可以肯定,在2007年Java IDE的主角将是NetBeans和Eclipse。至于其他的Java IDE,大概也只有随声附和的份了。

      二、NetBeans频频出招,Eclipse的制胜法宝在哪里?

      惊喜过后,就是围绕着Java IDE市场的激烈的争夺了。自从NetBeans成为众人眼中的明星后,Sun终于意识到自已这回宝押对了。于是使尽浑身解术将NetBeans推上王位。NetBeans采取了和Eclipse同样的策略:免费开源。自从NetBeans采用了这些策略后,它的使用量节节攀升。图1为2006年各种流行开发工具的使用情况:

        图1 各种流行开发工具的使用情况

      NetBeans除了拥有Eclipse的很多优势外,还具有以下同个特性:

      发布周期比Eclipse短  Eclipse曾被认为是升级最快的开发工具。但最近一、二年,Eclipse的升级速度不知怎么突然慢了下来。而开源社区解释说是为了更好地保证Eclipse的质量。而这却被Sun抓住了机会。在以前,NetBeans的升级并不快,而最近,NetBeans突然提高的升级的速度。我想是要跟Eclipse在时间上打一场硬仗。

      用户界面一致性和可视化开发  一种好的开发工具最大的优势就是容易使用。而NetBeans这一点做到了。由于NetBeans使用了Java标准的SWING作为自己的图形引擎,所以NetBeans的界面看起来非常统一。而且NetBeans还集成了用于可视化开发程序的功能(这在Eclipse中要使用插件才能实现)。通过这个功能,用户只要简单地拖放控件就能开发出绚丽的基于GUI的程序。这使得开发人员不用编写大量的代码就可以获得Java平台所提供的图形功能。从而可以进一下地缩短项目开发周期和上市时间,并且可以为企业带来更多的利益。

      强大的更新和发布能力  在 NetBeans 上构建的应用程序由 Platform 和实现特定于该应用程序的功能的客户模块组成。 NetBeans 还提供称为自动更新技术: 直接通过应用程序便可以下载新模块或更新模块。

      如果要发布基于NetBeans的程序,厂商并不需要发布整个新版本的产品,而只需要在服务器上更新,并强制用户下载新版本。这种更新是异步递增进行的,因此,不会明显地干扰用户的工作。

      更好的跨平台兼容性  由于NetBeans采用了Java的SWING,因此,它可以很容易地运行在其他各种操作系统平台上,如Windows、Linux、Mac OS-X、Solaris、HPUX、OpenVMS、OS/2等。而且随宜着JDK的不断升级,SWING会随着JDK性能的提高而提高,而Eclipse的SWT就不一样了。由于SWT是IBM负责开发的,因此,SWT实际上和Java没什么关系,只是穿上了一件Java的外衣而已。我们可以从JDK5就可以看出来,在JDK5中SWING的性能有了明显的提高,而在JDK5中SWT的性能却没有一点改进。

      同时使用SWING还有另外一个好处,就是在发布程序时,不再需要专用的二进制库或组件,只需要目标机器上有JRE即可。

      有组织的开发和升级  这是NetBeans最重要的优势。就象微软的Visual Studio一样,只由微软负责开发,虽然有很多人抨击微软的垄断,但这种开发和维护的垄断的却会对软件的发展非常有利。而NetBeans就象微软阵营的Visual Studio一样,由一家公司负责完全的维护和开发。这样一来,可以使bug数明显减少,并且会保证界面的一致性。而Eclipse由开源组织负责开发和维护,由于参与的人员水平不同,习惯也不同。这就会给为Eclipse的发展带来一些影响。也许现在Eclipse升级变慢要和这个有一些关系。

      NetBeans虽然有很多Eclipse不具备的功能和特点,但Eclipse毕竟是先来的,所谓先入为主。Eclipse在出道这几年也积累了很多的资本。NetBeans要想一下子打倒Eclipse也不那么容易。

      正所谓天下武功出少林,现在很多开发工具,无论是国外的,还是国内的,有很多都是基于Eclipse的,如MyEclipse、金蝶的开发工具,普元的组件开发工具,甚至大名鼎鼎的JBuilder也放下架子来靠近Eclipse,最近新出的JBuilder2007其实就是Eclipse加上很的插件。可见,现在Eclipse已经成为很多开发工具的父工具了。NetBeans要想抢过Eclipse的饭碗,还得多下功夫。

      Eclipse要对付NetBeans的方法还不止这些。由于Eclipse采用了SWT,因此,Eclipse就具有了访问操作系统层的能力和强大的集成能力。Eclipse却可以即只是简单的调用和返回那样的轻量的集成,也可以集成其他的软件,如Word、Excel等。从Eclipse的这些特定可以看出,Eclipse并不是好惹的。至于最终Eclipse和NetBeans谁能胜出,还得看今年它们的表现了。

      三、NetBeans的未来之路

      我相信很多用过NetBeans的人都有一种经历了很长一段时间的黑暗期。当初的Netbeans让所有开发者爱恨交加。随着JBuilder的光辉慢慢退却和NetBeans的功能和易用性逐渐加强。人们又把目光集中Netbeans身上。在NetBeans5.5发布后,Netbeans的宣传官Tim Boudreau谈论了NetBeans的未来发展方向。

      Frank Sommers说:“在未来的NetBeans中将会增强图形用户接口编辑器Matisse。因为要在多平台上工作,Java UI非常有趣,对于每个平台,都有用户接口设计向导。苹果公司的Mac系统上有,微软的Windows上有,同时还有Java Look And Feel向导。UI标准是很伟大的,它们对于用户使事情看上去很熟悉。同时,每个人对待在一个平台上如何去做是正确的,会有些不同,例如,你应当在离窗体边缘多远放置一个标签。

      同还Sun还会对布局进行改进,Matisse通过与GroupLayout的相互作用而工作,当你设计你的UI时,无论你在什么平台下设计,Matisse都会给出你它建议的位置作为指导。当你转移到另一个平台上时,布局管理器将使用此平台下的设计指导,Swing会使用正确的边界与字体。这就在很高的水平上解决了“Java-app-as-alien”的神话说法,使开发在哪里都可以看上去是正确并且变得容易”。

      NetBeans中的模块系统RCP允许你通过在它们自己的JAR外部,不是公共的类把一个应用的因素分成不同的部分。这个模块能够声明其它模块允许从什么包中调用类,其它包中的类仅在它们所在的JAR中是公共的。遵循这些路线,也许会在Java 7中作为一个语言特征出现,NetBeans RCP已经为桌面应用提供了这些。

      Frank Sommers最后还补充说:“目前,NetBeans主要还是一个Java IDE,但是它也支持C和C++。你预想它还会支持其它什么语言呢?你看到NetBeans会和Eclipse的目的一样,正成为一个语言无关的IDE平台吗?”。

      随着JDK的不断升级,我认为NetBeans的功能也会随着JDK的增强而增强。也许在未来几年后,Eclipse和NetBeans会成为开源界的两大开发工具阵营,当然,到那时,这两个工具并不只是开发Java的IDE,它们将是全能的,也就是说,除了开发Java,它们也可以开发象C/C++、C#这样的语言,甚至是动态语言,如ruby、php等。也许在未来数年内它们还将继续争斗,至于最终会鹿死谁手,就让我们拭目以待吧!!

    本文来自博客,转载请标明出处:http://blog.csdn.net/newweapon/archive/2007/05/23/1623083.aspx


    最新回复(0)