Friday, January 8, 2010

Eclipse vs IntelliJ IDEA

Eclipse advantages:
- It is free.
- You cannot close useless tool windows in IDEA as you can close views
in Eclipse. Eclipse can roughly emulate IDEA's layout with fast-view
but this does not apply vice versa.
- Eclipse has faster analysis of code.
- Eclipse can auto position semicolons.
- Eclipse can guess method call parameters.
- IDEA has nonstandard hot key for 'redo'.
- Eclipse supports multiple projects in one system window.
- IDEA loads project longer time and freezes while doing it.
- Drag & drop doesn't work when I want to add files to e.g. lib
folder. I'm accustomed to standard copy & paste of libraries in
Eclipse.
- IDEA cannot restart itself after changes in installed plugins.
- Eclipse can generate test class from to-be-tested class.

IDEA's advantages:
- Better refactorings (e.g. 'Replace method call duplicates...').
- Somewhat better code analysis.
- Nice pop-up that source file has changed in source control.
- Better navigation through code, e.g. you can navigate through
interface to implementation of any method. Eclipse can't do this for
interfaces. The only choice I found is F4 and then click on method
name in hierarchy.
- Eclipse hangs a little during update process.
- In IDEA you can 'extract local variable' anywhere in the line, but
in Eclipse you have to select the desired part of code.
- Weak support of Spring configuration file in Eclipse without
plugins.
- If you add a new method to an interface in IDEA, you have the option
to generate the method implementation in all implementations.
- IDEA doesn't ask if I want to reload the file from the file system,
just reloads it.
- IDEA has kind of support for Eclipse projects but not vice versa.

References:
http://coding.derkeiler.com/Archive/Java/comp.lang.java.softwaretools/2008-12/msg00017.html