迁移到Eclipse: Eclipse对IntelliJ IDEAA评估开发指南

Eclipse 是一个免费的、正日益流行起来的 Java 集成开发环境,最新版本的 Eclipse 中提供了很多特性,这些特性使它不但能与其他免费的 IDE 竞争,而且,即使是 IntelliJ IDEA 之类的专业商业软件,Eclipse 也能与之竞争。本文将 Eclipse 与 IDEA 进行了简单比较,为那些希望转换到 Eclipse 或者只是想体验一下 Eclipse 的程序员提供一份指南,让他们了解 Eclipse 提供了哪些令人激动的特性。

Eclipse 与 IDEA 的比较

Eclipse 是一个雄心勃勃的项目。具体地说,它不仅仅是一个 Java IDE 工具,而且更是一种可扩充的开发平台,旨在能够支持任何一种编程语言。然而,其参考实现 —— Java Development Toolkit (JDT) —— 只是一个 Java IDE,大部分人(尤其是 Java 程序员)谈及 Eclipse 时,通常也是这样认为。尽管您还为 Java 开发和 JDT 担心,但 Eclipse 开放的、可扩充的特性足以促进 Eclipse 和 Eclipse 社区的大力发展。

Eclipse 3.0 和 IntelliJ IDEA 4 有很多重要的区别,而其中最显著的区别就是价格:要想使用 IDEA, 您必须付费才能获得许可证,而 Eclipse 却是免费的。这一点究竟有多重要取决于您(或您的公司)的预算,不过很多专业的开发人员发现,IDEA 具有他们需要的所有特性,而且价格也很有吸引力。尽管如此,虽然 Eclipse 不具备 IDEA 的所有特性,但是围绕 Eclipse 进行开发的社区非常活跃,他们已经以第三方插件的形式完善地提供了 Eclipse 所缺少的特性。

比价格和有多少特性更为重要的是如何使用 IDE 进行工作。IDE 对您有多大贡献取决于许多因素,除了所提供的特性之外,这些因素还包括整体设计、稳定性和性能。在本文中,我们主要考虑 Eclipse 3.0 JDT 的基本特性,并将这些特性与 IDEA 中的可用特性进行比较。

特性

在编辑、运行和调试 Java 代码方面,IDEA 和 Eclipse 的基本特性基本相同,不过有时操作方式可能稍有不同。除了这些基本的编程特性之外,Eclipse 和 IDEA 都提供了对更高级的 Java 开发工具的支持,例如 Ant、CVS、JUnit 和重构。(请参阅 参考资料中介绍 Eclipse 的重构(refactor)特性的一篇文章。) 通常,从另外一种 IDE 工具迁移到 Eclipse 上时,最困难的事情是学习如何在新环境中实现原来环境中的功能 —— 由于 Eclise 提供了如此丰富的特性,查找某个特性通常比较困难。幸运的是,在 Eclipse 的在线文档中,有非常完整而且易用的帮助系统。

直至最近,与 Eclipse 相比,IDEA 最主要的优点之一就是它有一个集成的 GUI 编辑器。但现在这种情况正在发生变化:Eclipse 引入了 Visual Editor。Eclipse 的 GUI 编辑器是一个单独的组件,但是,相对于 IDEA 的编辑器来说,它有一个非常重要的优点:其代码和图形视图之间可以进行非常流畅的转换(在一种模式下的变化几乎立即就可以反映到另外一种模式中),不需要其他元数据或文件。

Eclipse 的 Visual Editor (VE) release 0.5 支持 AWT/Swing,现在,也可以在 Eclipse 2.1.x. 中使用该版本。用于 Eclipse 3.0 的版本 VE 1.0 即将发布。VE 1.0 将被用作一个独立的软件,可以从 Eclipse 的网站上下载它,它不但支持 AWT/Swing,而且支持 SWT。有关 VE 的更多信息,请参阅后面 参考资料中列出的文章“Building GUIs with the Eclipse Visual Editor”。

IDEA 的另外一个优点是它集成了 Web 开发的支持。然而,即使您需要这种功能,也依然可以使用 Eclipse。有几个第三方的插件可以为 Eclipse 添加这种功能,比如 Lomboz 和 Sysdeo Tomcat 插件。请参阅 参考资料中的文章,它向您展示了如何下载、安装和使用这些插件以及其他第三方插件。

整体设计和易于使用性

Eclipse 的新用户对 Eclipse 的普遍抱怨就是它难以使用。这在很大程度上是因为 Eclipse 采用了一种独特的方式来组织自己的用户界面。具体地说,Eclipse 引入了 透视图的概念,提供为执行特定任务而设计的环境,例如编码、调试、使用源代码控制系统等。经过一些引导和实践之后(这也正是本文的目的),大部分用户会发现,这个概念非常清晰,而且功能十分强大。

Eclipse 用户界面的另外一个优点是,它广泛采用了向导 —— 即一系列对话框,能够引导您一步步执行特定任务的步骤,比如新建项目或类,连接到 CVS 仓库等。当然,IDEA 也有向导,但是 Eclipse 的向导十分完整,提供了更多可能用到的选项。

稳定性和性能

从理论上来讲,Eclipse 在性能方面应该更具优势,因为它使用的是 SWT,SWT 使用了专用的构件 —— 操作系统的 UI 元素;而 IDEA 使用的是 Swing/AWT。然而,从实际情况来看,IntelliJ 在实现 IDEA 的用户界面方面做了很多杰出的工作,在一台功能强大的机器上,二者性能间的差距是可以忽略的。同样,Eclipse 和 IDEA 都非常稳定,用户基本上不会碰到什么问题。

证据源于实践

最后,如果您想评估一下 Eclipse 是否适合您的开发,就需要将其安装到一个测试硬盘中,亲身体验一下。这是评价 Eclipse 易用性以及它是否适合您的工作风格的惟一方式。下一节将简要地介绍一下 Eclipse 的使用。如果您已经下载并安装了 Eclipse,那么请继续阅读本文。

时间: 2024-11-03 17:58:08

迁移到Eclipse: Eclipse对IntelliJ IDEAA评估开发指南的相关文章

我们为何放弃Eclipse,投奔IntelliJ IDEA

本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/11/why-drop-eclipse-use-intellij Nikita Salnikov Tarnovski是plumbr的高级开发者,也是一位应用性能调优的专家,他拥有多年的性能调优经验与Java开发经验.很长时间以来,Tarnovski及plumbr的诸多开发者一直在使用Eclipse进行应用开发,不过随着时间的发展,现在plumbr的很多人都开始放弃Eclips

使用Eclipse+RDT插件进行Ruby开发

简介 本文介绍如何在Eclipse中使用Ruby开发工具(RDT)插件进行Ruby开发.本文将有益于那些想学习如何使用Eclipse基础架构来进行Ruby开发的Ruby开发者,也有益于对Ruby开发感兴趣的Java开发者. 一. 为什么使用Ruby? 现在,为什么众多的Java开发者都关注Ruby?Ruby,是10年以前在日本创建的一种通用目的脚本语言,这是一种纯面向对象的语言.不同于Java技术,Ruby中的一切都是对象.Ruby的语法主要来源于Smalltalk,Python和Ada.象Ja

Eclipse快速上手Hibernate--3. 利用XDoclet开发

    这篇文章是上两篇文章<Eclipse快速上手Hibernate--1. 入门实例>和<Eclipse快速上手Hibernate--2. 利用Hbm映射文件开发>的延续,主要说的是如何利用XDocletHbm映射文件产生Hbm映射文件及数据表.可以参考XDoclet文档中关于Hibernate的部分和夏昕编写的<Hibernate开发指南>.同样,这篇文章没有过多谈理论,只是给出了一个完整的实例加以说明.相关配置请参考上两篇文章.  1. 创建项目 ·  新建一个

eclipse + JBoss 5 + EJB3开发指南系列文章目录

eclipse + JBoss 5 + EJB3开发指南(15):拦截器方法和拦截器类 eclipse + JBoss 5 + EJB3开发指南(14):消息驱动Bean eclipse + JBoss 5 + EJB3开发指南(13) eclipse + JBoss 5 + EJB3开发指南(12):使用命名查询执行JPQL eclipse + JBoss 5 + EJB3开发指南(11) eclipse + JBoss 5 + EJB3开发指南(10) eclipse + JBoss 5 +

eclipse + JBoss 5 + EJB3开发指南(13)

在Servlet中访问应用程序管制EntityManager对象 在前面的文章中使用的都是容器管制的EntityManager对象.这类EntityManager对象是由EJB容器创建 的,在这种情况下,EntityManager对象的生命周期完全由EJB容器来管理.在SessionBean中可以使用如 下的代码来通知EJB容器创建EntityManager对象: @PersistenceContext(unitName="myentity") protected EntityMana

eclipse + JBoss 5 + EJB3开发指南(11)

实体Bean的连接策略(JOINED Strategy) 在上一篇文章中,使用单表策略将一个表从逻辑上分成了多个表.但这样可能会造成空巢字段,也就 是说,一个逻辑表只由部分字段组成,而物理的表的很多字段的值就会为null.为了解决这个问题,可以 将t_accounts表物理地分成多个表.为了与t_accounts表进行对比,新建一个t_myaccounts表,结构如图 1所示. 开发指南(11)-eclipse ejb jboss"> 图1 t_myaccounts表 从t_myaccou

eclipse + JBoss 5 + EJB3开发指南(10)

通过继承实体Bean,将单个表映射成多个表(单表策略,SINGLE_TABLE) 如果以前使用过EJB1.x或EJB2.x的实体Bean,会发现无法通过继承实体Bean将单个表分成多表.而在 EJB3中,我们很容易实现这个功能.先看看图1所示的表结构和记录. 开发指南(10)-eclipse ejb jboss"> 图1 t_accounts表的结构和记录 在t_accounts表中,有一个account_type字段.这个字段是一个长度为1的String类型字段.只能取两 个值:C和S.

eclipse + JBoss 5 + EJB3开发指南(9)

实现Entity Bean的多对多(many-to-many)映射 在EJB3中需要使用@ManyToMany对封装多对多关系的字段或getter方法进行注释.先看看下面的表: 开发指南(9)-eclipse ejb jboss"> 图1 t_addresses表 t_addresses表和t_customers表是多对多的关系.需要使用一个关联表来描述这种关系,关联表的结 构如下图所示. 图2 t_customers_addresses 在Customer类中定义一个Collection

eclipse + JBoss 5 + EJB3开发指南(8)

实现Entity Bean的一对多(one-to-many)映射 EJB3的一对多映射使用@OneToMany来设置,如果是双向的一对多映射,在many方需要使用@ManyToOne 设置.在本书中给出两个表,其他一个表t_customers在上一篇文章中已给出了,另一个表的结构如图1所 示. 开发指南(8)-eclipse ejb jboss"> 图1 t_orders表 t_customers和t_orders表是一对多关系,一个Customer可能有多个Order,而一个Order只