Ide Comparisons

Eclipse, Intellij and Netbeans are widely used IDEs for Java development. They each have Pros and Cons of course. But what are they?

Also see IDE Key Shortcuts

Eclipse

pro

  • widely supported, lots of plugins, somewhat of a standard (due to being the first open source / free)
    • ex, the android plugin is great - doing android under netbeans is definitely a 2nd class experience
  • The best refactoring features, Intellij and Netbeans are followers here and sometimes their delayed matching implementations still don't work as well
  • The Team Synchronization feature / perspective is simple and great. Almost every developer I know should use this more (especially for non-distributed source control)
    • avoid not noticing updated files on the server
    • make it less likely to check in unintended changes
    • review their code for mistakes before checking in
    • in general, understand exactly what they are commiting before making it happen
  • Code formatting and save actions are really good
    • could still be more flexible (ex, enum formatting), but in general it's probably the best available
    • would be nice to support non-java files better

con

  • fundamental filesystem problems that cause almost constant "file is out of sync" messages (unless you do EVERY operation within eclipse and don't use any plugins that don't trigger a refresh)
    • The others (along with almost every other program users normally use) refresh their files direct from the filesystem without exposing users to such pains
    • A "quick" improvement would be to add a "refresh and repeat" to EVERY place where the file out of sync with filesystem error can appear
    • Also the Team Synchronization->Synchronize view doesn't have the "refresh" option, so requires switching perspectives, refreshing, then switching back to synchronize
    • In today's era of google doc's behind the scenes synchronization of documents in real time over the web, it really is an inexcusable situation. I don't know if the Eclipse dev team has this on their roadmap, it's been the same for a very long time - if anything it's getting worse in newer versions.
  • maven plugin is very screwed up - Intellij and Netbeans can both open pom.xml files and are very nice to work with even complicated projects in. This also got worse with the requirement of maven eclipse plugins in order to handle poms with various plugins (and not providing handling for such ubiquitous plugins as the antrun plugin) - it really is a disaster
    • IMO the best way to fix this is to delegate the UI input to a command line maven implementation as the others do
  • SVN plugins sometimes have issues - but I don't fault the IDE much here (and not sure if the others are … Subversion is an extremely error prone source control system.
  • memory hog? or is it just that I always end up having more plugins installed than the others

Intellij

pro

  • Shelf changes (similar to git stash) implementation for SVN is very nice
  • control-shift-t to go to the test for a particular file is great
  • control-space half way through a method name, and then hit tab to overwrite the rest of the method name is a really great feature - one would be surprised how often I do this in the others and have to waste time manually editing the method name to remove the garbage at the end because it now says something like "getDetailsxxxxxx"
  • control-shit-n to open a file can take stacktrace format, ex:

con

  • Intellij has no partial compilation support. Eclipse has some awesome partial compilation features - ex: if half the file compiles, it will happily run that half of the file, this is pretty awesome for TDD. Intellij has the exact opposite, if running a test class where all instantiated classes compile and there's an error in a completely unrelated class, it will still fail to run.
  • community edition is freely available, but if you want the version that really rivals the others, you have to shell out significant $s for the ultimate edition
  • I prefer how eclipse and netbeans allow you to have multiple projects open within the same window. Intellij supports having multiple projects open simultaneously only if there are multiple windows.
  • Netbeans and eclipse allow for more flexible arrangement of editor windows. It's easier to drag and have one file above another or side-by-side for instance

Netbeans

pro

  • maven project handling is very nice
  • debuggers step into handling is very nice when there are multiple method calls on the same line (just click on which method to step into)
  • right clicking project or a directory and selecting search works (doesn't in eclipse)

con

  • I've had a lot of issues with non-maven projects (ant based projects) getting corrupted and being unmaintainable
    • for example, not being possible to check out the project from SVN and have it work - instead have to check out externally and then import - or have to do a new project of a certain type and then copy the checked out code into it manually.
  • some basic features are clunky
  • code formatting is not as advanced as Eclipse
    • Spacing is either ALL 0, ALL 1 - can't group fields, etc.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License