66
votes

I know there have been questions like What is your favorite editor/IDE?, but none of them have answered this question: Why spend the money on IntelliJ when Eclipse is free?

I'm personally a big IntelliJ fan, but I haven't really tried Eclipse. I've used IntelliJ for projects that were Java, JSP, HTML/CSS, Javascript, PHP, and Actionscript, and the latest version, 9, has been excellent for all of them.

Many coworkers in the past have told me that they believe Eclipse to be "pretty much the same" as IntelliJ, but, to counter that point, I've occasionally sat behind a developer using Eclipse who's seemed comparably inefficient (to accomplish roughly the same task), and I haven't experienced this with IntelliJ. They may be on par feature-by-feature but features can be ruined by a poor user experience, and I wonder if it's possible that IntelliJ is easier to pick up and discover time-saving features.

For users who are already familiar with Eclipse, on top of the real cost of IntelliJ, there is also the cost of time spent learning the new app. Eclipse gets a lot of users who simply don't want to spend $250 on an IDE.

If IntelliJ really could help my team be more productive, how could I sell it to them? For those users who've tried both, I'd be very interested in specific pros or cons either way.

9
  • 3
    You may be seeing some selection bias here. An IntelliJ customer is much more likely to learn the features and shortcuts than your average Eclipse user.
    – Macneil
    Nov 28, 2010 at 2:28
  • 3
    I would not push others to use the tools that work for you. This is highly subjective, and stupid things like these can ruin an already established relationship. If you have a choice of using either IntelliJ or Eclipse, and the project compiles just fine using either - knock yourself out, use IntelliJ. If you want to promote it, then casually mention it when the time is right. Adults hate it as much as kids do when others try to make decisions for them. You can still get them to switch, but it has to be "THEIR" decision, and so you just need to make right amt of buzz at the right tm.
    – Job
    Nov 28, 2010 at 2:59
  • @Job, I agree with that. I'd like to find out A) if IntelliJ has a real advantage over Eclipse, so that B) if it does, I can sell it, not mandate it.
    – Nicole
    Nov 28, 2010 at 3:21
  • You do realize IntelliJ has a free version right? You can't make it sound like the only option is the paid for version
    – TheLQ
    Nov 28, 2010 at 6:31
  • @TheLQ, you are right, for brevity I assumed that users familiar with IntelliJ would also be familiar with the limitations of the free version. I've personally never had a project where it was any use, as I've always needed more than just the pure Java component.
    – Nicole
    Nov 28, 2010 at 6:37

7 Answers 7

62
votes

I work with Intellij (9.0.4 Ultimate) and Eclipse (Helios) every day and Intellij beats Eclipse every time.

How? Because Intellij indexes the world and everything just works intuitively. I can navigate around my code base much, much faster in Intellij. F3 (type definition) works on everything - Java, JavaScript, XML, XSD, Android, Spring contexts. Refactoring works everywhere and is totally reliable (I've had issues with Eclipse messing up my source in strange ways). CTRL+G (where used) works everywhere. CTRL+T (implementations) keeps track of the most common instances that I use and shows them first.

Code completion and renaming suggestions are so clever that it's only when you go back to Eclipse that you realise how much it was doing for you. For example, consider reading a resource from the classpath by typing getResourceAsStream("/ at this point Intellij will be showing you a list of possible files that are currently available on the classpath and you can quickly drill down to the one you want. Eclipse - nope.

The (out of the box) Spring plugin for Intellij is vastly superior to SpringIDE mainly due to their code inspections. If I've missed out classes or spelled something wrong then I'm getting a red block in the corner and red ink just where the problem lies. Eclipse - a bit, sort of.

Overall, Intellij builds up a lot of knowledge about your application and then uses that knowledge to help you write better code, faster.

Don't get me wrong, I love Eclipse to bits. For the price, there is no substitute and I recommend it to my clients in the absence of Intellij. But once I'd trialled Intellij, it paid for itself within a week so I bought it, and each of the major upgrades since. I've never looked back.

6
  • Exactly what I was looking for. One question though, I think I've got a few different key mappings than you. Can you clarify what the functions you are talking about are?
    – Nicole
    Dec 8, 2010 at 0:30
  • 2
    You can set IntelliJ to use Eclipse shortcuts? That might just be the last push I need to really give IntelliJ a go - my muscle memory was holding me back. Thanks for the tip!
    – yatima2975
    Dec 15, 2010 at 16:14
  • 9
    @yatima2975 No worries. Just look in the preferences, filter on "keymap" and select Eclipse. You've got Emacs and a bunch of others too.
    – Gary
    Dec 15, 2010 at 17:13
  • 1
    On my Linux machine, I recently switched from Eclipse to IntelliJ IDEA Community Edition (open source and completely free) for a Java/Android project and I had the same good experience. IDEA is simply fantastic. Download it here: jetbrains.com/idea/free_java_ide.html . As JetBrains is claiming, IDEA is the most intelligent Java IDE on the market. Don't get me wrong, either: I use and love Eclipse, NetBeans and Qt Creator IDEs, as well (depending on the task and language at hand). Dec 4, 2012 at 15:28
  • 2
    I'll add an emphasis on the javascript support as well as other front end languages. Intellij includes WebStorm, which by itself is fantastic for front end. Feb 14, 2013 at 20:27
15
votes

I hear the difference with IntelliJ is that they are much more likely to fix and close bugs that you submit. That could make a big difference if there is some Eclipse bug that is blocking you.

On the other hand, you cannot look at IDEs in isolation; you need to look at the ecosystem. Here, I think Eclipse has an advantage (similar to Firefox's advantage over Chrome*): There are many more plug-ins available, and developers are much more likely to write an Eclipse plug-in than otherwise.

[Tangent: *For Firefox I'm thinking of Zotero and HTTPS-Everywhere. I use both Chrome and Firefox, but some things Chrome just can't handle. Also, when making handouts, I really do need print preview.]

3
  • Are there facts supportig the statement about fixing bugs? (I myself always struggle while comparing such a measurement, especially with software where one can't easily see the bug inflow ... like most commercial software and even some open source products)
    – johannes
    Dec 4, 2012 at 18:04
  • @johannes While I can personally vouch for this, you can see for yourself at youtrack.jetbrains.com/issues Feb 14, 2013 at 20:30
  • 1
    While it is true that Eclipse does offer a larger set of plugins, IntelliJ does also offer all the necessary plugins that are required to get the job done. In other words, the number advantage for plugin availability should be taken in context. I see this the predominant reason why Eclipse is preferred over IntelliJ. Apr 5, 2013 at 14:53
13
votes

Disclaimer
This is limited to Android development only (In Java obviously).

I am coming to this with some limited knowledge of Eclipse and IntelliJ both; however, I have recently had to decide on a development environment for Android. It would seem that the first clear choice would be to use Eclipse since Google supports it with their ADT plugin. Unfortunately, I found it terribly clunky to get around since I am used to Visual Studio (2010, more recently 2012). I have always used ReSharper with Visual Studio so I decided to give IntelliJ a try. After about 10 minutes I realized that I had made the right decision.

IntelliJ, as some have stated, indexes everything. The intellisense was a joy to work with and the intelligence surrounding suggestions was excellent. The debugging experience I found to be a pleasure and quite honestly, I really couldn't live without the code analysis. I know a lot of purists would have a problem with that kind of thing but I don't care. I have to push out projects very quickly for lots of people so sometimes it's just nice to run the code anaylsis and see what the IDE suggests. Whether or not you take those suggestions is another story but I didn't find anything like this in Eclipse.

Some also say that there is no Android designer in the current version of IntelliJ. This is certainly the case but I wouldn't ever use it anyway. I am debugging on a device most of the time so it doesn't matter. I get to see the interface and play with it everytime I run the program. Anyway, from a traditionally "non-Java" guy I have to say that Java is particularly nice as compared to Eclipse.

6
votes

You need to demonstrate vividly and without doubt that for the tasks you need to do on a daily basis, IntelliJ allows for a substantially amount of time and effort saved as opposed to Eclipse (and NetBeans).

This will require you to do some research to find out what that might be, and then construct a demonstration showing this to the people who can decide how to work.

My suspicion is that you will find this a rather hard task to do, as Eclipse these days can do quite a bit, reasonably well. If you find killer points, please share - I'm sure plenty want to know.

13
  • 2
    "If you find killer points, please share - I'm sure plenty want to know." - That's actually why I ask -- it's hard to find time to do this research or try Eclipse myself (and I'm probably biased anyway). I'm hoping I uncover some users who've got some good experience with both!
    – Nicole
    Nov 28, 2010 at 1:38
  • 1
    @Thorbjørn True, but I'm talking about general tasks, the kind that are applicable across at least all the use cases I've had, which I think are pretty wide. But, if there is anything specific, it'd be nice to know what that is too.
    – Nicole
    Nov 28, 2010 at 1:50
  • 1
    @Thorbjørn You're right about what will convince them, but I think general tasks apply here. My productivity is increased 10:1 by general features of an IDE vs. feature subsets related to my specific job. In other words, standard IDE features are what help me/them in our daily work.
    – Nicole
    Nov 28, 2010 at 1:57
  • 2
    Actually, for the cost, all you have to realistically do is demonstrate that it can save at least ~10 hrs of productivity over the lifetime of its intended usage (assuming $25/hr programmer pay). Everything after that is gravy. Dec 7, 2010 at 1:40
  • 1
    Just for the record. Eclipse and IntelliJ (and Netbeans) work well with Maven. This mean that if you use Maven projects, you can use the most appropriate IDE for the situation at hand.
    – user1249
    Feb 22, 2012 at 21:12
5
votes

Intellij is better for many reasons, not least the darcula theme ... but there are a few others :

  • autocomplete for method names - it offers what I want to call them usign convention.
  • jquery autocomplete very easy to set up (never got it workign with eclipse).
  • EL autocomplete in jsp's
  • spring integration and inspection shows errors in set up (eg duplicate bean names)
  • autocomplete for controller/url mappings
  • easy to use and set up database integraion (it detects the datasource automatically) and autocomplete obviously
  • code inspections, like checkstyle and findbugs, built in and easy to use.
  • jslint and jshint built in and easy to use.
  • maven integration works out of the box straight away.
  • All the settings are where you expect them to be.
  • It does not detect errors incorrectly, I used to get highlighted errors in eclisp ewhere there were none and had to restart.
  • Autocomplete and error detection in xml files (a big deal with spring)
  • hibernate mappings have autocomplete enabled (a pojos' fields are supplied as autocomplete option in the mapped pojo - gr8).
  • ctrl+alt+click opens the implentation, not the declaration
  • Hotdeploy : you can easily set it up so that when intellij loses focuses your deployed app gets updated automatically - I alt tab to my browser and the new code (be it classes, javascript, or jsps) is already deployed.
  • a built in rest client with no extra config required.
  • built in chat client that allows code pointers - actually very useful.
  • persistence view, easy access to your all your jpa/hibernate entities and settings.
  • bug fixing, actual accountable bug fixing I have submitted a number of bugs and they have been fixed promptly.
  • inspection and autocomplete in your xml documents, very very useful with spring (I know this is a repeat but it is great, revealed a myriad of errors).

I have been using it abotu 3 weeks now so hopefully find some more soon; its well worth the money.

Oh one more thing it actually opens ... I had a bug in my eclipse that meant it would refuse to open. Just "google eclipse wont open" there are loads of links. I feel stupid for taking this long to change.

1
  • This is a very helpful list, but you forgot to mention which IDE you are talking about. Based on your mention of version 12 in the last sentence, I guess this is all about IntelliJ. Jan 6, 2013 at 15:20
3
votes

Google just recently announced that it is moving Android development to IntelliJ.

There is a reason for this. I have been using Eclipse as an environment to teach courses for the past few years in both C++ and Android/JAVA. I have watched the quality of Eclipse deteriorate to something approaching unusable. In Fall, 2012, I adopted Eclipse Juno for my course and it was an unmitigated disaster. Not only was the program incredibly sluggish and loaded with bugs, it had several user interface changes that were beyond stupid. I now use it as a case study in bad user interface design.

I cannot recommend Eclipse to anyone at this point in time. The bug database has gotten so large that there is no chance they will ever address even a small fraction of them.

1
  • This is helpful at a high level, but could you give more detail?
    – Kazark
    May 20, 2013 at 19:09
1
vote

I don't know of solid feature-by-feature blows, but one thing that I've discovered with in-and-out use of the IntelliJ environment for about a decade is that the design teams at JetBrains have done a great job of both having the IDE "index the world" as well as keep the indexing and autocomplete functions both responsive as well as consistent - I don't typically think about it, but with the responsiveness plus the number of keyboard shortcuts (and the ability to map more), IntelliJ makes it very easy to build "muscle memory" when using the editor.

It's not a small thing when you can write code, autocomplete, compile and test without your fingers leaving the keyboard, and in a way that doesn't feel like a stereotypical sluggish Java app.

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