话说,好马配好鞍,一个好的工匠,必定要有一套好的工具才能打造出最好的工艺给大家。之前,Plumbr团队里的所有成员都使用Eclipse编辑器,而如今,大家都成为IntelliJ IDEA用户。那么,到底是什么让大家抛弃老练且免费的战马,转而去抢高达600美元的座位呢?当然,IntelliJ IDEA也提供了开源免费的社区版本。下面不妨听原文作者细细道来,并列出了几大原因。

1.索引

尽管JetBrains的伙计正在做“引擎盖下”的事情,但是他们索引的确是极其快速,并且还支持各种不同的内容。快速的索引在几个可用性特征上已见成效:

  • 自动检索代码,并且会给出相应的警告:在Eclipse中,你必须手动启动分析,而IntelliJ
  • IDEA则会快速做出响应和回馈,它能懂得上下文。
  • 在相同的索引条件下,IntelliJ IDEA在代码完成和代码生成方面要好很多。大家还记得那个Lists里臭名昭著的java.awt.List自动导入,开发者花费数年才把“顶级推荐”予以删除掉,而使用IntelliJ IDEA完全没有这样的烦劳。
  • 按ALT+ENTER键会自动提供完成程序,该功能可以使用在多个场合,我甚至怀疑有Amazon Mechanical Turk在偷窥我,因为它的建议实在是太好了。

2.跨语言操作上更胜一筹

即使在IntelliJ IDEA里想要表现不同的内容,编辑起来也是非常自然的。无论是编辑Java、JavaScript、HTML或者是一个JPA查询——其跨语言操作都是非常的好。即使不是编辑Java代码,也无需重新设置快捷键。并且具有很好的代码补全功能,尤其是编写JavaScript代码,而Eclipse却无法提供支持。

3.给出基于上下文的建议

当开发者在着手处理不同的问题时,Eclipse试图给大家提供“最好的建议”,这也就意味着我的屏幕布局得不停的切换,从开发模式到调试再到重构等,这是非常令人困扰的。而现在,只需一个额外的上下文窗口即可解决上面所有问题。

4.调试

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

5.技术支持

Eclipse由基金会成立,这本身不是什么坏事,但由于基金会里的各个团体利益出发点不同,所以在管理和执行上肯定会有所不同。对于开发者来说,这并不是什么好事,当你想获得一些技术指导或支持时,它很有可能不能及时给你回复。而IntelliJ IDEA完全不会存在这样的问题。

下面是我最近发现的几个好东西:

  • 当你输入时,JPA查询语法会立即进行正确性检查,这样就节省了大量的时间来检查错误。
  • 属性文件集成:在一个属性文件里,开发者可以在源码里看到某个属性的使用状态。
  • 整合不同的浏览器:为了测试HTML代码的兼容性,开发者可以在IDE里建立不同的浏览器,这样开发者就无需安装各种不同的浏览器进行测试。
  • 在IDE的右边会显示CSS代码颜色,所以开发者不用在浏览器里对此进行检查。

最近,越来越多的开发者体会到,使用IntelliJ IDEA要好于Eclipse,对此,笔者从网上搜集到了一些资料(以下内容节选自:为何IntelliJ IDEA比Eclipse更好):

1.自动完成

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

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

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

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

  

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

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

2.重构

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

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

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

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

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

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

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

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

3.Eclipse好于IntelliJ IDEA的地方

下面列一些Eclipse可能比IntelliJ IDEA更好的地方:

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

最后的建议

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

关于IntelliJ IDEA

目前最新的稳定版本是12.1.4, 点击查看 IntelliJ IDEA最新版本介绍。

下载地址:

最好的Java IDE之争:Eclipse PK IntelliJ IDEA的更多相关文章

  1. 【小白的java成长系列】——java ide 开发工具eclipse的操作

    今天看了一下自己的博客文章,里面的内容还是比較杂的,有好多技术,有好多语言,都没有突出自己的强项,能够说,从博客里面,看不出我究竟是做哪块的..加上今天被授予了博客准专家勋章,自己想了一下,还是得梳理 ...

  2. 【高软作业2】:Java IDE调研分析

    一 序言 随着软件项目开发需求的增多,拥有一款优秀的.顺手的IDE(Integrated Development Environment)对程序员来说显得格外重要.本文就Java程序开发,选择了3款I ...

  3. 总结java IDE (eclipse)快捷键

    Eclipse快捷键 10个最有用的快捷键:Eclipse中10个最有用的快捷键组合:一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码 ...

  4. JAVA IDE IntelliJ IDEA使用简介(一)—之界面元素

    (注:简介基于IDEA的版本为:11.0,下载地址:http://www.jetbrains.com/idea/) 打开IDEA,(当第一次打开的时候出现的是一个欢迎页面,随便创建一个project来 ...

  5. Java - IDE

    JDK安装及环境变量配置 下载安装对应版本的JDK 控制面板--->系统--->属性--->高级系统设置--->环境变量 新建系统变量JAVA_HOME 变量名:JAVA_HO ...

  6. RedHat7/Windows7搭建JAVA开发环境(Eclipse)

    RedHat7搭建JAVA开发环境 安装JAVA # yum install java 安装Tomcat # yum install tomcat 确认Tomcat版本 # tomcat versio ...

  7. java学习笔记2——Eclipse的安装及汉化图解

    Eclipse的安装 有了JDK,你可以编译Java源码,运行Java程序,但是还没有代码编辑器,没有版本管理工具,也不能方便的管理工程文件,不能与团队协作.安装Eclipse,你才能完成这些工作. ...

  8. 提高Java代码质量的Eclipse插件之Checkstyle的使用详解

    提高Java代码质量的Eclipse插件之Checkstyle的使用详解 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代 ...

  9. Java 开发环境配置--eclipse工具进行java开发

    Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java Cloud Studio ...

随机推荐

  1. LinuxShell脚本攻略--第一章 小试牛刀

    使用 shell 进行数学运算: #!/bin/bash no1=; no2=; let result=no1+no2 echo $result result=$[ $no1 + no2 ] resu ...

  2. Python核心编程-基础2

    open() 和 file() 函数会同时存在, 完成相同的功能.一般说来, 我们建议使用 open() 来读写文件, 在您想说明您在处理文件对象时使用 file() , 例如 if instance ...

  3. PHP 获取服务器详细信息【转】

    碰到此问题,做下记录 获取系统类型及版本号:    php_uname()                                   (例:Windows NT COMPUTER 5.1 b ...

  4. 慎用GetOpenFileName

    这两天发现了一个小问题,经过一上午的排查终于找到了问题的原因--Windows 7的API函数GetOpenFileName竟然有BUG! 请参考下面的MFC代码: CFileDialog dlg(T ...

  5. 【转】 Linux进程间通信

    一.进程间通信概述进程通信有如下一些目的:A.数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B.共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别 ...

  6. 实现 像网易云音乐 播放列表那样的弹出型Dialog

    如图 所示是点击Test之后的 弹出的Dialog (请无视我工程的命名) 20161017/**加入点击回调,假设dialog里放了一个TextView*/ 得先写一个点击回调 public int ...

  7. Question store (Repeated review)

    题目36 - ACM在线评测系统http://acm.nyist.net/JudgeOnline/problem.php?pid=36 用户名密码INVATION  讲道理太卡 第一:要注意不同的函数 ...

  8. IE6/IE7下:inline-block解决方案

    IE6/IE7下对display:inline-block的支持性不好. 1.inline元素的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的displ ...

  9. zoj 1204 Additive equations

    ACCEPT acm作业 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=204 因为老师是在集合那里要我们做这道题.所以我很是天 ...

  10. notepad++之TextFX插件

    一.安装 插件→Plugin Manager→Show Plugin Manager,Availble→选中TextFX→install 二.使用 1.去除重复行 TextFX—>TextFX ...