Introduction: Why IntelliJ IDEA?

Coffee or Tea? Mac vs. PC? iPhone OS or Android? Eclipse or IntelliJ IDEA (or NetBeans)? Believe it or not, software developers argue as much about their IDE as any of these other hotly-debated topics. And for a good reason…

Confessions of an IntelliJ addict

My name is Anton, and I’m an IntelliJ IDEA addict. Whew, it feels good to say it out loud. The choice of IDE for developers is one of the most contentious debates in the software game. Unless you have a darn good reason, you don’t often use more than one IDE, let alone all three of the major IDEs in the Java world: Eclipse, IntelliJ IDEA and NetBeans.

The truth is that I have been a happy IntelliJ IDEA (for the sake of brevity and laziness, you’ll see IntelliJ IDEA referred to in full, as well as simply “IntelliJ” and “IDEA” as well from here on) user since 2004—a full decade. Over the last 10 years, I have always been discovering the new aspects of the IDE and I’m always waiting for the new version release with an excitement.

But why? After all, aren’t all IDEs more or less the same? (BOOO! HISSSSS!) Was there something that happened in my past to make me so dedicated to this particular IDE?

Well, before settling on IDEA, I had worked with Eclipse and NetBeans, even championing Eclipse at one point in my former job. But by using IDEA and Eclipse almost side by side for some time I realized that IDEA supports the work I was doing much better. Eventually, I dodged other IDEs and decided to become a full-time IDEA user. When I joined ZeroTurnaround, my new role required me to learn all IDEs in-depth due to the fact that our flagship product, JRebel, ships as an IDE plugin for Eclipse, NetBeans, IDEA, and JDeveloper. My primary IDE is IntelliJ IDEA and my teammates think of me as of an IntelliJ IDEA addict.

Now it might be only my impression, but back then IDEA had the best refactoring capabilities. These days, I think it still is more consistent in terms of UX, and there are shortcuts for almost every action. Not to mention it understands the source code context better than others. Subjectively, it made me more productive, but this kind of depends on the set of features that you, as a developer, need and want. If the IDE matches what you actually use then it is probably the best IDE for you :)

The Java IDE market landscape

Here you can see a recent breakdown of the IDE landscape (as of 2012). We are planning to survey developers again in 2014 for new stats, but most likely, things haven’t changed that drastically. Note: Answers were non-exclusive and asked developers to select IDEs in use, not single selections only).

As you can see, I’m not alone. Close to 1/3 of Java developers that we surveyed in 2012 use IDEA on at least some projects. However, neither IDEA nor third-place NetBeans compare to Eclipse, which clearly dominates the scene. Understandably, Eclipse is an advanced tool that is completely free and open source (as is NetBeans), whereas you have to pay to get the most out of IDEA. Wait, what?

Yep. What makes IDEA different is that was a commercial-only tool until 2009, when IntelliJ IDEA 9 was released. Now we have both Ultimate and Community editions. Community Edition is free and open source and Ultimate Edition is a commercial product and builds on top of Community Edition and offers more features and support.

A number of features are provided only in the commercial distribution and in this guide we assume that you will try Ultimate Edition when evaluating the IDE. The community edition is enough for Java and even for Android development, but you will miss a lot of cool features. See the full comparison of the two IDEA versions at the official product page: http://www.jetbrains.com/idea/features/editions_comparison_matrix.html

What you’ll see in this report

My main purpose in writing this report is to show Eclipse users, specifically, how to get started using IDEA faster and with less headaches.

Perhaps you are Eclipse users who are interested in trying out IntelliJ IDEA, or perhaps considering the migration. Moving from Eclipse to IDEA can be quite overwhelming. People usually neither have patience nor time to learn new IDE with its own set of shortcuts. Even more – in some cases it requires changing your mindset about how you use your IDE. With this guide, my goal is to point out the main differences when moving from Eclipse to IDEA so that the path wouldn’t be as painful.

I have seen a lot of my colleagues going from Eclipse to IntelliJ IDEA. They struggled initially, but survived. In a few days or weeks they didn’t want to come back to their previous IDE. Naturally, I have tried to help a lot of my friends to migrate to IDEA and with this guide I’d like to help YOU as well.

So, I’ve broken it down into a few chapters. In Chapter I, we’ll talk about getting your project set up right, Chapter II looks at keymap, navigation and editor settings, and Chapter III covers more advanced things like testing, deploying and artifacts. So, let’s get started!

Anton Arhipov is XRebel Product Manager at ZeroTurnaround. Java Champion, vim fan and IntelliJ IDEA addict. Professional interests include programming languages, middleware and tooling. Anton loves tea and doesn't drink coffee. He tweets from @antonarhipov and you can find him at LinkedIn.

This is fine, IDEA might be greater than Eclipse, it does not provide any RCP framework.
This is one of the reason why people are still using Eclipse : it is not only a matter of developping applications but also to have an ecosystem you can build applications on.

Regards,

arhan

The article takes a look at IntelliJ IDEA form the perspective of an IDE user. RCP is a whole other niche and Eclipse excels there that’s for sure. NetBeans is another RCP platform you might want to take a look at. IntelliJ IDEA – not an RCP for sure, but it is turning into a platform for building programming-oriented tools.

Jérôme

Sure. I mean it is too bad. Because, while tempted to adopt IDEA for
development because it is clearly superior, you often try to minimize
the investment in learning tools and hence with RCP development you
usually to stick to the IDE that offers RCP features as well.

Johnny

Mr. ARHIPOV, if you are not sponsored by RUSSIAN company JetBrians, I’d say both Eclipse and Intellij are good IDE. To be honest I have been using IntelliJ and Eclipse for over 12 years. And now I use intellij mostly at work because I am forced to so. As IDE they are very close. For example Intellij’s search is better but eclipse’s debugger is better. Refactoring was shining feature for intellij but it isn’t much better than Eclipse any more.

And also Intellij is basically an IDE. Do not compare Intellij with Eclipse’s frameworks.

arhan

Hello!

Haha :) No I’m not sponsored by JB. My sponsor is ZeroTurnaround :)

I wonder what made you think that my article claims the superiority over Eclipse? Of course, for me IDEA is superior – but that is a subjective judgement and I’m not saying a word on IntelliJ vs Eclipse in this article.

I know Eclipse pretty well and I know that there are features in debugger that Intellij lacks. There are features in IntelliJ debugger that Eclipse lacks too. So there’s no aim at comparing the IDEs in the article.

Pointing out the tiny differences is a subject of flamewars in comments to the Reddit posts, not at RebelLabs, IMO.

Apa

This is religion taking over rational thinking. There’s no point in telling or showing Eclipse users that IntelliJ is superior in every field – which it is. They need to find that out by themselves the hard way.

RCP sure but who cares? If your are tying frameworks to a specific IDE you are doing something seriously wrong. Investment in learning? Sure it takes a few days but considering that dont ever need to look back or elsewhere for next 10 years I’d say it offers a good payoff.

Jatin

Very well written. I am myself an Intellij fan and only go back to eclipse when I code in scala (sadly scala support is a bit better in eclipse).

There were many useful shortcuts that I was not aware of. Thanks for them :)

Yona Appletree

Interesting that you find Eclipse’s Scala support better. I’m a Scala developer by day and my entire team uses IntelliJ. We actually switched from Eclipse because IntelliJ seemed to handle Scala better. Specifically, it had better syntax highlighting, error reporting, refactoring and integration with Maven in Java/Scala projects.

Jatin

Hmm I have heard this from another person also recently. There are few things where I think eclipse excels better: showing exact implicit function when an implicit transformation happens (afaik intellij doesnt show this), better worksheet, syntax highlighting (personal choice :))

elf

Then i come to idea. I miss very comfort eclipse typing model, when u finish method eclipse place cursor after closing brackets and I type Semicolon and Enter.
Eclipse preserve ability to change parameters list.
Idea place cursor in brackets, thats break me down. I need to pess End or Right arror, they very far for me. I hate this.
Is this configurable?

arhan

Isn’t ; disabled in Eclipse by default so that you have to explicitly enable that?
In IDEA, to complete statement they have a shortcut: Ctrl+Shift+Enter / Cmd+Shift+Enter.
It is a matter of taste, which one is better, typing, or pressing a shortcut. For me, the shortcut semantics (pressing the specific shortcut) is better since I clearly indicate the intent.
Typing a character inside brackets and pressing enter and then expecting the statement to close is sort of an implicit semantics and looks rather like a hack.

elf

My mistake. By Enter i mean new line. Before it need press Enter to complete statement, and now Semicolon and Enter.