Which is better for Java development - Eclipse or IntelliJ?
Having worked with both, I think there is no clear winner.
IntelliJ scores big on:
- UI speed: I think Eclipse's auto-complete is a bit more powerful, but IntelliJ's is faster.
- Stability: About once every few months, Eclipse gets into a broken state best fixed by re-installing it.
- Finding features: IntelliJ has a command-finder, much like the one in Sublime Text. Hit Control+Shift+A then type a keyword, and it lists the related commands. This is great for discovering features.
- A more natural relationship with the file-system (although still a bit peculiar).
Eclipse wins on:
- The compiler: IntelliJ demands that all files compile without error. That sounds reasonable, but it's actually a nuisance in team-work projects. Someone else's error in a different part of the code can block your work.
- Git / source-control integration: The Eclipse integration is easy to use, and the diff compare-with tool is brilliant.
- The debugger: they're both very good, but Eclipse's debugger wins. It has easier breakpointing, better inspection tools, and brilliant support for editing code whilst it's running.
- The refactoring support.
In many places it's a matter of personal taste. For example, IntelliJ's layout is more compact. Eclipse has dynamic switching between layouts ("perspectives"), with stable views in a layout; whilst IntelliJ has one layout with dynamic pop-up views. etc. etc.
If you're familiar with one -- I would stick with the devil you know.