Eclipse vs IntelliJ IDEA

It’s official. This is just a rant. It always is, because even the most serious comparisons of these tools are always clear win for the one used originally and total dismiss of the newly adopted one. I’m Idea user – for almost 9 years or so. I remember a few let downs with Idea – the biggest one for me is clearly introduction of Modules and lack of some good Project view as a result. And also the need to reorganize your project because to get support for web you had to move sources out of the standalone java part of the application (for instance). And application.xml must go to another (module) directory too. And if you add module “All” with the real project root, you can’t see anything in module subdirectories. This was more or less fixed somehow after Idea 4, but still… However – most IDEs somehow forces you to do something with your project anyway. And if you start follow patterns like Maven (not a bad idea either) than you should be safe.

Another issue I have with Idea (and I reported it – but it’s probably not good idea for creators) is a new search bar (since 7? 8? not sure now). Thing is, Ctrl+F is ok, but Enter should work differently. When you write your search string, Enter works like F3 and arrow down – but focus stays in the bar. Not only too many keys do the same thing – but you’re also not in the code after Enter. You have to Enter and Escape to get there. Hell, you can even Ctrl+F, write the search string and Escape – that’s does what I want (and expect from Enter). However, highlighting is gone. So what you really need to do is Ctrl+F, write and click to the code – you have to touch the mouse! 🙂 Not to mention that if you press Ctrl+F, write, Enter, Enter… you go through your searches and then you need to do another search, Ctrl+F pulls down previous searches instead of giving you the fastest way how to start another search. Firefox selects all and you can search something else – great! Idea’s solution is just so silly that probably previous dialog using way worked better for me. But maybe I’m the only one here.

But that’s it – otherwise I just love Idea. When I’m in code I can just feel it.

And then Eclipse. I’ve read someone complaining about how contextual (hence smart) Eclipse is and how difficult Idea shortcuts are. I can just say, that I’m going crazy when Eclipse offers different search depending on the file I’m in (is there EASY way how to full-text search the whole project – Ctrl+Shift+F in Idea?). Idea’s three different completions might be a bit problematic at the start, but much faster when you know what they do. And then – comparing Ctrl+N with Ctrl+Shift+T… well, I think it’s clear what is easier. I can always get faster to editor in Idea (and that’s actually what I do a lot) while in Eclipse it’s a real finger exercise.

Or Mark Occurrences – they are not sticky! I can’t choose and highlight this… and that… and go somewhere else. It just blinks like disco music all over the screen – or you can turn it off. There are so many features that were copied in much better fashion from Idea do Eclipse, but this one is just ridiculous. Sure I have to click Ctrl+Shift+F7 in Idea – but then – I can highlight any text, not just a type. And more of them. And obviously – I don’t need this Christmas lights turned on all the time (not to mention that the default colour is hardly highlighting – I was rather confused whether I selected something or what).

I also found that in many cases where Idea happily completes, Eclipse wants me to fix some braces first (took me some time to realize that) before he is capable to do so. And Idea goes to the next line after (un)commenting one, Eclipse not (by default at least).

Or SVN support – how can anyone compare SVN support in Idea and Eclipse? In Idea it just works out of the box (even in community edition). And Quick diff (that’s how it’s called in Eclipse, never needed to know the name in Idea) – it’s just far superior (and working right away) in Idea. Also colours are much more distinct (by default!), items in the outline on the right are easier to recognize, etc. In Eclipse all these things are rather greyish, often coloured with pattern instead of solid colour and always outlined instead of being nice thin (yet thick enough) line like in Idea. Deleted stuff in Idea’s diff shows as a triangle, not line nearly impossible to hit with a cursor.

And then commit! Lately I had to do my first “synchronization” and I was shocked how inferior the commit is in terms of my control over the process. Files that are not yet added can’t be told from those that are added to SVN – you have to right click them and check if Add option is available. Not to mention I don’t want to add them by default at all! It was also not that easy to find option to ignore white-spaces in diff view, not to mention I like three options offered by Idea more.

Rename refactoring in Idea selects the whole identifier and I can just write a new one – in Eclipse you have this feature if you switch to rename dialog, not in editor, you have to remember to select the stuff. On the other hand, sometimes it indeed is useful to have cursor on a specific place of the identifier. In Idea I actually miss easy way how to deselect the word without moving the caret – so let’s call it a draw here. Ad selecting – with Idea I can select a word in a string or part of dot separated property name – and then go on to the whole string, line, and on. In Eclipse I can’t select word from its middle in an easy way.

Eclipse is just like this. I don’t see things there, I need more perspectives to use it (never needed that in Idea), Console contains too many… well actually consoles – and there is yet another mechanism to switch between them (funny drop-down button instead of more tabs for instance). I just like Changes window and Run window separate! And that’s probably the point. We all love different things. And while both Idea and Eclipse are customizable to some extent, they can’t satisfy all developers. Even when both do the job (unless you want to sticky highlight thingies ;-)).

What I can’t deny to Eclipse – their plugin ecosystem is just absolutely awesome. And all these things like EMF or Xtext… many companies use their own plugins built on Eclipse. For a reason. Whether it’s because Idea wasn’t for free (as is Community Edition now) or not – it’s hard to say. But that probably helped a lot.

I’m now stuck with Eclipse and will probably learn to overcome some of the problems. But I can smell it right now, it will hardly grow on me as Idea did.

Don’t miss other posts on this topic:
From IntelliJ IDEA to Eclipse (2)
Why to synchronize with SVN in Eclipse?
From IntelliJ IDEA to Eclipse (3)
From IntelliJ IDEA to Eclipse (4)
From IntelliJ IDEA to Eclipse (5)


About virgo47
Java Developer by profession in the first place. Gamer and amateur musician. And father too. Naive believer in brighter future. Step by step.

17 Responses to Eclipse vs IntelliJ IDEA

  1. Pingback: Starting with Wicket on IntelliJ IDEA « Virgo's Naive Stories

  2. Pingback: From IntelliJ IDEA to Eclipse 2 « Virgo's Naive Stories

  3. Anonymous says:

    Nice comparison, but I still not moving from the thing I know.

    For rename in Eclipse just click in a middle of a word (class, field, method) and press ALT+SHIFT+R and there you go..

    And the perspectives in Eclipse is something I really love. It’s one of its best features for me. Imagine you are working in Java perspective and you don’t want it to be overfilled with windows you don’t need like Stack-trace view and Variables view in Debug. And the you switch to Paternoter perspective to do some modeling and you don’t need the old the Outline view, and Package Explorer from Java perspective. Then you switch to do some SQL, Scala, Xml, Groovy.. This is really something I can’t live without.

    • virgo47 says:

      I know the shortcut for rename, I was nitpicking about selection behavior – and actually I quite like the Eclipse way too in this case! 😉

      Perspectives in Eclipse is cool – one just have to get used to it, indeed. In Idea however, many things are grouped in one window and separated by split or so (Debug has all things I need in one docked window) – then I don’t need perspective really. Perspective is handy in Eclipse because every tiny thing there is “View” you have to take care of, place it, open it, close it. Philosophy is different and perspectives really fit the Eclipse way.

  4. Matt says:

    Ctrl+H for find in workspace/project.

    You can see all the shortcuts in the preferences.

  5. Erik says:

    Maybe these help:

    Ctrl+E to select a window from the open tabs
    Ctrl+R to select a resource from any open project
    Alt+Arrow Left to go back to the previous edit location (just as in most programs)
    Ctrl+1 to bring up the quick fixes when some word or token is marked with a red thingy

    • virgo47 says:

      Partially 🙂 thanks for the addition to my post related to keyboard shortcuts:

      However, I’m still missing Idea’s CTRL+E – reopen recently closed file. Very handy, and truely missing if you get used to it. And comparing how most of the keyboard shortcuts actually work is also more than difficult. Compare template for foreach in Idea and Eclipse… that’s comparing usefullness with annoyance, really.

      • Erik says:

        I don’t know how the foreach template in Idea. If you type ‘fore’ and do ctrl+space you can select the template. If you only type ‘for’ you get more loop suggestions.

        I seem to never open (or close for that matter) recent files, but I understand that you would miss that. You might want to check out the mylyn plugin as it helps with resource management.

  6. rp says:

    I have only used Eclipse myself, and the main problem with IntelliJ-users in team-projects I have worked is that (while they are in a clear minority) IntelliJ auto-formats java-code different from Eclipse, which is PITA when you want to track code-diffs in Version-control.

    • virgo47 says:

      Partially true – but it’s not that complicated to agree on a single formatter. After that there are only minor problems (and here IDEA is to blame with its javadoc reformat bugs (quite a few)) with code format per se. I generally reformat code of my colleagues only if it’s plain badly formatted in the first place. I don’t auto-reformat, it’s all about attitude as well.

      One big issue about Eclipse-IDEA cooperation was native2ascii upper/lower-case problem – but this is going to be fixed in IDEA pretty soon (will be uppercase as Eclipse).

      • rp says:

        well, if you do NOT auto-format some people seem to be kind of “dyslectic” to details and put curly-braces, punctuation, etc, in the strangest places, and even get indentation wrong, spaces instead of tabs or vice versa, etc, etc.
        Working in team projects, with members coming and going, for me its definitely a Best Practice to ALWAYS auto-format before saving and checking in code, to ensure consistent formatting.

    • Satellite Ecstatica says:

      There is a plugin to use the eclipse formatter. I’ve not used it (yet) but hopefully it’s the solution to format ping-pong between IDEs.

      Now does anyone know how to do eclipse style “Save Actions” in IntelliJ?

      • virgo47 says:

        Partially you can do this in commit dialog – Reformat code and Optimize imports. Many little actions like trimming lines is in the reformat in IDEA. Other than this I just use Ctrl+Alt+L a lot to reformat code and Ctrl+Alt+O to organize imports when necessary (when I see warning there).

  7. Pingback: From IntelliJ IDEA to Eclipse (4) « Virgo's Naive Stories

  8. Pingback: Is Eclipse the best IDE for Java? [closed] | ASK AND ANSWER

  9. Pingback: Eclipse 5 years later – common formatter quest | Virgo's Naive Stories

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s