This are the differences I found so far:
- Better problem view. It shows all errors in the project if I e.g. break a method signature
- Only one version of Ctrl-Space for autocomplete. I don't want to remember if I need to press alt-ctrl-space or shift-ctrl-space etc. for a given situation
- Many more plugins
- Plugins and features are often based on other huge features (e.g. EMF)
- More than one main window. This is cool when you e.g. are working on transitioning a project from EJB2 to EJB3 or spring. On one monitor you have an Eclipse window with the old code and on the other monitor you have the new code. And on both monitors you can use Overview-view or Package explorer for the class just shown. It also helps when you just want to see a referenced class for the code you are working on. Splitting the window in more tab groups isn't the same.
- Quick-fixes seem to do a better work for my typos
- Changelists are an extremely cool feature if you are working at different parts of the project you don't want to commit together
- Snappier than Eclipse (probably because it does no incremental compilation of the entire code base)
- cmd-D in Changes View is very handy to see what one has done to a file.
- Much better code smell detection.
- Nicer UI look and feel (native Mac, I am not talking about some Motif styles etc.
- Commit dialog is better arranged (probably due to the changelists). But the "show me the last commit messages" is hidden (cmd-m)
- If one is programming in an EJB-2 project, Idea is able to follow calls into EJBs, as it knows through ejb-jar.xml which interface classes belong to which EJB. This is extremly helpful. It seems that there is a plugin for Eclipse that can do this as well.
- The "Scope: Problem" view doesn't really work for me. Probably because IDEA does no incremental compile of the sources. If I change a class in the domain (remove a method) then classes in the GUI that access this method are not displayed as having an error until I open them. Eclipse shows me the GUI-classes directly upon save of the domain class.
- Struts support is nice
- Editors for HTML and other 'Web technologies' are better than what you find in a plain eclipse (one can download the WTP stuff to get this as well)
The comparision ends 0:0. If both were free then I'd just change around all the time. Using IDEA for hacking and Eclipse to find errors in the code
What do you think? And yes, there is also NetBeans. But this is not used in our project and I don't want to go through the process of setting up the project structure in it.