`

为何 IntelliJ IDEA 比 Eclipse 更好

阅读更多

下载   http://www.jetbrains.com/idea/

 

from http://www.oschina.net/news/26929/why-intellij-is-better-than-eclipse

 

圣战

有一些没有唯一正确答案的“永恒”的问题,例如哪个更好:是Windows还是Linux,Java还是C#;谁更强壮:Chuck Norris还是Van Damme。

其中的一个圣战便是Java IDE的选择:

有许多争论的话题是讨论它们哪个有更多的插件、快捷键等等。它们之间有太多的不同而很难决定什么才是最重要的。

因此,人们都表示两个IDE在功能性上都差不多,选择某一个则是个人喜好问题了。

我认为这不仅仅是个人喜好的问题,有客观的原因能表明:Intellij IDEA 肯定比Eclipse更好.

我不会去大量比较两者细微不同,例如插件与快捷键之类的。因为有一系列的blog是关于这些的,例如:[part 1] [part 2] [part 3]。我将会展示IDEA与Eclipse的一个最大的不同之处。通常IDEA和Eclipse的fans都不曾了解。前者已经习惯性的使用着它而不曾想象IDE缺少它会怎样,后者则没有使用它的习惯且难以想象有了它IDE能做得这么好。Eclipse的用户在把玩IDEA的时候通常都不会意识到这个不同点,因为他们习惯了以Eclipse模式工作。

为何我如此确信?

在开始说明之前,让我解释一下我是谁和为什么我的观点值得一听。

我使用Eclipse已经5年之久,我很了解它,我为它编写插件并真心地喜爱它。然后,我换了一个公司工作,并被强行转移到IDEA上开发,在这次“分手”后,我才最终意识到为什么IDEA更加敏锐。而如今我我已经使用IDEA一些年了,所以我能比较它们两者,因为我了解它们。

IDEA与Eclipse主要的不同

IDEA之所以更加敏锐的原因是:IDEA懂得上下文。这也是JetBrains员工命名IDEA为intelligent的原因。它真正的含义又是什么呢?IDEA检索你的整个项目,分析项目所有的内容,甚至构建语法树。幸亏有它,在任何时候无论你将鼠标放置在哪里,IDEA都知道你在哪里并知道在那能干什么。

仍旧不了然?别担心,在列举了以下几个例子后,一切就清楚了。

这种对上下文的理解表现在很多很多方式上,以下只是其中的一部分。

1、调试

通常在调试过程中,我们想要求一些表达式的值,在Eclipse中你需要选定这个表达式,选定整个表达式非常重要,否则你就没法求出它的值。然后,你可以使用Ctrl+Shift+I看到这个表达式的值。

使用IDEA你不需要选择任何东西,你只需要把光标移到你的表达式中然后按下Alt+F8。IDEA会很好的理解这个你可能需要的表达式,然后显示一个对话窗口,其中有一些它给出的建议参数变量。你也可以编辑并在对话框中立即将得到这个表达式的值。相当的方便!试过这个特性后,你就不会再想在Eclipse中调试了。

基本上在两个IDE上都能让你做同样的事,但是使用IDEA会更加简单和快速。对此我认真的表示,这个差异太大了:就像天堂跟人间一样。在一个小小的IDEA对话窗口中就提供了自动完成,语法高亮以及你需要的一切。

2、自动完成

自动完成使得IDE比notepad更加优秀,在这个领域能感知上下文的IDEA有了质的飞跃。例如,我们开始如下一行代码:

1
assertElement(By.id("errorMessage"), vi

现在我们想要查找以vi开头的选项有哪些。

IDEA怎么做的呢?无需等待任何的按键,它马上就能理解assertElement需要一个Conditaion类的示例作为第二个参数,而在Condition类中有一个静态变量名叫visible。IDEA会直接建议这个唯一的有效选项。

然而,Eclipse会怎么做呢?唉,它不能理解上下文,它不知道光标所在处就是assertElement方法的第二个参数。因此当你按下“神圣”的Ctrl+Space时,Eclipse只会简单的显示全局中以vi字母开头的一切。

在一个美丽的弹出框中我看到了很多漂亮的高亮的格式规范的无用的信息.:(

3、重构

专业的程序员能够高效的使用IDE提供的重构功能。所有的现代IDE都提供许多印象深刻的重构功能。但是还是那句,IDEA的重构功能也很聪明智能。它们能读懂你需要什么,然后针对不同的情况提供给你最适合的解决方案。

例如,假设我们有一个assertErrorMessageIsHidden方法:

1
2
3
public void assertErrorMessageIsHidden() {
  assertElement(By.id("errorMessage"), Condition.visible);
}

我们以字符串“errorMessage”作为该方法的一个参数。

让我们先从IDEA开始,将光标放在任何字符串“errorMessage”上,按Ctrl+Alt+P(代表“parameter”),IDEA将会建议我们可能可以在哪些表达中用次字符串为参数。

当“errorMessage”表达式被选定以后,IDEA将会建议一些可能的能用做该参数的变量名称。

每月惊奇

你会经常地惊讶于IDEA的聪敏表现,比如它为你提示一些选项的名称。它考虑到方法名称,变量类型甚至是变量值,以及其他的此类变量的名称,与之前你给定的此变量的名称,除了忽略了你的生肖。相信我,你会想说“Wow,IDEA也能这样?”,我想说至少每个月一次吧。

现在然我们看看Eclipse是怎么样给出建议的。

别忘了,选择整个"errorMessage"表达式哦。选择一个“推荐参数”的重构功能(通过菜单,没有什么快捷键可供使用),获得差不多相同的结果,然而,Eclipse不会给出变量名提示选项,但幸亏不会。

结论

如果我们选择Java IDE,那么Intellij IDEA肯定要比Eclipse好的。这不仅仅是个人喜好问题。从客观上看,IDEA更好。它是的你能够快捷地编写和修改代码。它给出恰当的名称提示,查找适合的方法。它不需要你特别地选择表达式便会猜测到你想要做的以及你想如何对它命名。IDEA预示着并给你提示。

P.S. Remarks

我认为IDEA在作为Java IDE时确实比Eclipse更好。如果你考虑他们其他方面的能力例如用于其他例如C++、Python、Scala的IDE上,或者是作为构建桌面的应用的平台,Eclipse很有可能拔得头筹。

事实上这是依赖于对他们的定义的,Eclipse已将自己定位为一个抽象平台,用来使用插件构建任何工具,而IDEA则定位为一个“智能的Java IDE”,而且它正如此。

作为纪念我就尝试着列绝一些Eclipse可能比IDEA更好的地方:

  • Eclipse看上去更棒,所有大题小做的SWT以及本地控件都用的很值。Eclipse看上去很稳定的深思熟虑过的程序,它有着漂亮的字体以及图标。然而当第一眼看到IDEA是,它像是作噱头的玩具一样,有着不完全的图标以及笨拙的Swing界面。
  • Eclipse拥有更强的项目结构支持。在IDEA中,你的项目是有模块组成。在Eclipse中你拥有一个由工程组成的工作区,每个工程都能被单独打开或关闭,分组或隐藏。但是你真的需要么?
  • 为Eclipse编写插件似乎很简单
  • IDEA比Eclipse使用更多的系统资源。这其实也说得通--因为IDEA了解得更多
  • 最后,Eclipse是免费的,然而IDEA Community版本已经够我用了

最后的建议

如果你需要漂亮的图标,用来创建桌面程序的平台,C++IDE或者你用一个低配的笔记本工作,那么Eclipse可能对你来说是更好的选择。但是如果你是一个正儿八经的Java开发者,你需要更快更方便的工具帮你集中注意于解决问题而不是让你分心,IDEA则正是你所需要的。

 

分享到:
评论

相关推荐

    关于java 为何 IntelliJ IDEA 比 Eclipse 更好?

    许多开发者都认为,Intellij IDEA 比 Eclipse 更好。那么,为什么 Intellij IDEA 会比 Eclipse 更好?本文将从多个方面来分析 Intellij IDEA 的优点。 首先,Intellij IDEA 之所以比 Eclipse 更好,是因为它能够...

    IntelliJ IDEA2019.1使用Eclipse的快捷键配置及说明

    此外,为了更好地利用IntelliJ IDEA的强大特性,建议花时间学习一些原生的快捷键,这将有助于提高开发效率。 总之,"IntelliJ IDEA2019.1使用Eclipse的快捷键配置及说明"是为那些希望在IntelliJ IDEA中使用Eclipse...

    IntelliJ IDEA中的Eclipse快捷键插件

    这个插件的主要目标是为Eclipse的忠实用户们提供一个熟悉的键位布局,让他们能够在不改变习惯的情况下更好地适应IntelliJ IDEA。安装该插件后,开发者可以快速地执行诸如重构、编译、调试等常见操作,就像他们在...

    IDEA与Eclipse统一代码风格codeformatter使用文档

    最后,为了更好地理解和应用IDEA与Eclipse的代码风格统一配置,文档还提供了两个参考链接。第一个链接提供了关于如何配置EclipseCodeFormatter插件的详细说明;第二个链接则是该插件在JetBrains插件市场中的页面,...

    尚硅谷_宋红康_IntelliJIDEA的安装、配置与使用(带目录)

    相比于 Eclipse,IntelliJ IDEA 拥有以下显著优势: - **强大的整合能力**:例如 Git、Maven、Spring 等工具的集成。 - **快速便捷的提示功能**:代码补全和提示更为迅速且准确。 - **广泛的提示范围**:支持更多的...

    IntelliJ IDEA 开发配置指南

    通过深入学习和实践,你将更好地利用这个强大的开发工具,为你的JAVA开发之旅增添助力。《Manning出版社:IntelliJ IDEA开发配置指南》这本书将是你宝贵的参考资料,帮助你一步步成为IntelliJ IDEA的专家。

    从Eclipse转移到IntelliJ IDEA

    Eclipse转过来的很多人开始可能不适应,我就把使用过程中的一些经验和常用功能分享 下,当然在看这篇之前推荐你先看完IntelliJ IDEA 的 20 个代码自动完成的特性,这篇文章 对自动完成的特性介绍的非常好,只是...

    intellij_idea开发工具文档

    这篇文档将详细介绍IntelliJ IDEA的使用方法,帮助开发者更好地掌握这款强大的开发工具。 一、JetBrains IntelliJ IDEA 9.0.4介绍 IntelliJ IDEA 9.0.4是该系列的一个早期版本,尽管现在已经有更新的版本,但其核心...

    idea兼容eclipse的快捷键设置的jar包

    在IT行业中,集成开发环境(IDE)是程序员日常工作的核心工具。IntelliJ IDEA和Eclipse都是备受开发者喜爱的IDE,它们各自...通过理解和利用这样的工具,开发者可以更好地适应多样化的开发环境,提升自己的编程体验。

    IntelliJ IDEA 12 配置webapp项目和导入Eclipse工程

    它可能包含了图文并茂的教程,帮助用户更好地理解和操作。 总之,从Eclipse迁移到IntelliJ IDEA的过程中,需要关注项目结构的匹配、依赖的导入和运行配置的设定。IntelliJ IDEA以其强大的智能代码提示和便捷的开发...

    idea 设置eclipse主题风格颜色

    在设置主题的过程中,你可能会发现有一些第三方插件,如`Eclipse Color Theme`,能够提供更多的Eclipse主题供IDEA使用。这些插件可以通过IntelliJ IDEA的插件市场(Marketplace)进行安装和管理。 总的来说,通过...

    Intellij Idea安装配置教程

    接下来,用户可以对IDEA编辑器进行个性化设置,这些设置包括调整字符编码以确保文件正确地编码解码,设置IDEA界面字体和等宽字符以获得更好的代码阅读体验。用户还可以设置是否在编辑器中显示行号,调整启动IDEA时不...

    Android-我常用IntelliJIDEA进行写作

    标题中的“Android-我常用IntelliJIDEA进行写作”表明了主要的讨论主题是关于在Android开发过程中,作者偏好使用IntelliJ IDEA这款强大的集成开发环境(IDE)来进行写作和编码工作。IntelliJ IDEA是由JetBrains公司...

    Eclipse快捷键导入IDEA

    在IT行业中,开发人员经常需要在不同的集成开发环境(IDE)之间切换,...通过理解两个IDE的键绑定和键映射系统,以及正确导入和调整快捷键设置,我们可以使IDEA更符合个人的工作习惯,从而更好地融入到新的开发环境中。

    idea-eclipse风格主题.zip

    标题中的"idea-eclipse风格主题.zip"表明这是一个适用于IntelliJ IDEA的,模仿Eclipse编辑器界面主题的压缩包。Eclipse是一款广受欢迎的开源集成开发环境(IDE),以其高度可定制性和丰富的插件系统著称。IntelliJ ...

    IntelliJ Idea所必要撑握的使用技巧.pdf

    通过阅读官方文档和参加相关的教程,可以帮助开发者更好地了解和掌握IntelliJ Idea的高级技巧。 总之,IntelliJ Idea是一个功能强大的IDE,通过学习和应用上述的技巧,开发人员可以显著提高工作效率,减少重复性...

    IntelliJ IDEA 详细图解最常用的配置.docx

    本篇文章将详细介绍IntelliJ IDEA中最常用的配置设置,帮助新用户更好地适应和利用这款IDE。 首先,我们来调整界面外观和字体大小。这是个人舒适度的重要设置,可以根据个人视力需求调整字体大小,使得长时间编码...

    javaswing电子英汉词典(idea和eclipse都能打开).zip

    Swing是完全由Java编写的,它提供了一个轻量级的组件模型,与Java AWT(Abstract Window Toolkit)相比,Swing组件具有更好的外观和更多的定制选项。Swing组件通常比AWT组件更现代,且在不同的操作系统上有一致的...

    十大Intellij IDEA快捷键

    ### 十大Intellij IDEA快捷键详解 ...掌握这些快捷键不仅可以提高开发效率,还能让开发者更好地利用IDEA的强大功能。对于Java开发者而言,熟练掌握这些快捷键无疑能够让日常开发工作变得更加轻松高效。

    IntelliJ IDEA10.0 Web项目部署文档

    ### IntelliJ IDEA 10.0 Web项目部署指南 随着IntelliJ IDEA 10.0的发布,开发者们迎来了一个新的开发工具。...这种方式有助于更好地管理项目结构和部署配置,为后续集成Spring、Hibernate等框架提供了坚实的基础。

Global site tag (gtag.js) - Google Analytics