10
votes

Important private beta notice: this is a trial question for this proposal on meta: Advocating “X vs Y” questions.

Of course IntelliJ IDEA, Eclipse and NetBeans are all excellent cross-platform IDEs with a great number of features and numerous plugins for any needs. I know there are substantial differences between them for Java EE (IntellJ is not free) and Android (IntelliJ-backed Android Studio is powered by Google and seems to become a new standard) development.

But the choice is harder if I develop "pure Java" software. What unique advantages does each of these IDEs have that could incline me to use them?

5
  • 3
    I would say this question is too broad if you don't detailed your requirements more precisely. You can do so many things around "pure java". How about a question like "What editor offers to download and import JARs automatically from a Maven repo upon autocompleting?"
    – Nicolas Raoul
    Feb 5, 2014 at 5:59
  • 4
    @NicolasRaoul please read my answer on meta. I could list tons of requirements, but all these IDEs meets them all. It doesn't help to choose Java IDE.
    – leventov
    Feb 5, 2014 at 6:04
  • Would you tell us your OS. Although all the IDEs you listed are cross-platform, they do not behave equally under different OS-es, mostly in terms of performance and stability Feb 5, 2014 at 7:16
  • 1
    @IvayloSlavov my own platform is Linux, but I don't want to localize the question. i. e. your answer could look like "IDE X is better than competitors on plaftorm Y because ..."
    – leventov
    Feb 5, 2014 at 7:24
  • 2
    Until this is fully talked about over on the meta topic I don't think it is appropriate to vote to close Feb 7, 2014 at 23:14

1 Answer 1

14
votes

Being a java software developer, I'd gladly share my personal experience with you. First of all, I must mention that all my experience with the above IDEs is on Linux platform, but I have seen that what applies to this OS is not the same as for Windows or MAC. Also, respecting your "pure Java" restriction, I will not address features related to other languages/frameworks and etc that might be supported. So, here we go:

Eclipse

The good things about this IDE are:

  • the most visually appealing one from the three, personal opinion
  • easy source code navigation
  • navigation between maven pom files, when clicking on dependencies, has info tooltips
  • good workspace structure, allows for creating working sets - groups of projects within a workspace, so one could focus on a concrete working set rather than the whole workspace.
  • excellent debugging
  • multiple perspectives (dedicated language development like Java, Spring, JavaScript, Debug perspective and etc). Each perspective has its own settings on views, position of windows and tools and etc, which are automatically remembered by the IDE. To me, this is a valuable advantage, although the configuration is maintained per workspace only.
  • allows to easily import and debug 3rd party source code. Sometimes, it requires the code to be manually downloaded, but the rest I find easy enough

Disadvantages:

  • it is slow on loading, clumsy on interactions. With additional plugins it becomes slower.
  • often crashes, especially on Linux (Windows versions are more reliable), it is good to restart it in a few days.
  • under Linux, versions higher than 3.0 lag for a few seconds prior opening any markup file (XML, JSF), which is very counter-productive.
  • versions below 3.0 do not have the above markup problem, but lack support for Java 1.7 syntax features (the short generics for instance).
  • JSF lacks auto completion
  • Mac versions have inconsistent conventions for shortcuts, part of them use the Ctrl + ? combination, other use the FN + ?. Users familiar with the IDE on other OS-es get frustrated at first
  • moving files across packages/projects can be a pain, as some times copy(cut)/paste does not work, just drag & drop

  • sudden freezing upon autocompletion, fixed only by restarting the IDE (could be work-arrounded by minimizing and restoring, but the menu commands and related keyboard shortcuts stop working - i.e. can edit file but unable to save it. Still, copy-paste to external editor is possible)

  • internal IDE task processes are not reliable. Possible hanging, inability to stop or even deadlocking if multiple tasks with shared resources are started (like refreshing the SVN repository multiple times causing more than one refresh processes).

IntelliJ IDEA

I have experience with this IDE on Linux only, maybe on other platforms there will be differences I might be missing

Advantages:

  • intuitive to use
  • excellent code navigation
  • support for Eclipse projects (able to import them as IDEA projects)
  • excellent and verbose refactoring
  • able to access the filesystem location of a file from the project view trough the right-click menu (a feature I am missing in eclipse)

Disadvantages

  • for spring XML contexts, it does not recognize all attributes although it has fetched the imported XML schemas. The actual problem is the error highlighting, which may confuse inexperienced developers
  • working with Subversion (reviewing and synchronizing changes) not as intuitive as in Eclipse
  • false error syntax coloring in pom.xml files when using maven properties instead of literals for dependencies (like the version number and etc). This can confuse inexperienced people.

NetBeans

The advantage I can think of:

  • for web development, it has embedded server, which makes easier for hosting a web application for debug purposes, without setting up an external server and deploying to it.

Disadvantage:

  • slow loading time

I have used NetBeans in the past and I preferred it over Eclipse, as by that time it was more stable and consumed less resources. But then my usage of it included doing my homeworks at university. I have not used this IDE professionally, as my work environments preferred the above options for Java, therefore I would not engage in comparison.

My personal choice weights towards Eclipse, as I am more familiar with it, although it has a lot more disadvantages. I prefer it for its capabilities to organize the workspace and allow to better focus on the current task. As I said, the multiple perspectives help a lot, as I have configured each to best suit for the concrete task I am working on. I like the verbose output from subversion too, as it is important for me to properly track my commits/updates.

IntelliJ IDEA makes it easy for me to adapt to it though it is less intrusive and intelligent indeed. It recognizes multiple project types automatically, and asks you on the moment, if something needs additional configuration. For instance, if you import a maven project, and it does not have the maven home directory set up, it will ask you for it when you attempt to perform maven-related tasks and will remember your choice. Obviously, the IDE attempts to assist you in configuring it and using it appropriately. Combined with its stability and responsiveness (compared to Eclipse), it feels as a lot more reliable environment. I must admit I have not delved into customizing it in depth, but it is a candidate for becoming my IDE of choice.

6
  • 2
    Please, try to focus on differences. For example, there is no need to mention all these IDEs are free and they all consume much memory (that's Java). Make most meaningful points italic.
    – leventov
    Feb 5, 2014 at 9:52
  • @leventov ok, I removed the memory stuff and emphasized on what I consider important Feb 5, 2014 at 10:00
  • 1
    All mentioned IDEs have plugin support. plugins.jetbrains.com/?idea_ce Feb 5, 2014 at 11:50
  • @MariuszS yes, that is so. I seem to have missed this for IntelliJ Idea, fixed now Feb 5, 2014 at 11:52
  • 2
    I think you should remove plugin information, all IDEs are similar here. Feb 5, 2014 at 11:53

Not the answer you're looking for? Browse other questions tagged or ask your own question.