Subscribe for updates on posts
Be the first to read the latest news

Intellij Idea versus Eclipse – part I

August 10th, 2006 by Marius Hanganu in Java, General, Tools

>> 10 reasons why Idea is better

In this part I’m focusing on advantages of Idea over Eclipse. I plan for a 2nd part to check out the other side – advantages when using Eclipse over Idea.

This is not a major feature comparison, but more of a mix of small experiences intended to ease your life as a developer. I’ve spent a lot of time developing server side applications with both IDEs, so I can’t really speak for differences when it comes to J2ME support or other features. I’ve also had my share of experiences with quite a few Eclipse plugins, but I haven’t tried them all (who did?).

I have to mention I’m talking here about Idea 5.x vs Eclipse 3.1. I played only a bit with Idea 6.0 and barely tried Eclipse 3.2.

1. Navigation – Idea is king when it comes to navigating through hierarchies in Java classes. The ability to go to implementation it’s fun and easy to use. Eclipse may have some plugins that do this, but still not as smooth as Idea.

2. Intentions – when adding methods to your interfaces, Idea automatically suggests you to implement that method in all implementing classes. With Eclipse’s default configuration you can’t do that. Not even sure there are plugins offering this feature. This tremendous feature really improves productivity when you build APIs and continually add methods to your interfaces.

3. One package to rule them all – a lot of functionality packed into one single installer: Idea has almost everything you want packed in one single package. The fact that for Eclipse you have to customize your own distribution is a pain in the a**. There are MyEclipse (not free) which may take Eclipse very close to Idea, or EasyEclipse, which is a distribution packed with almost everything you want.

4. Keyboard shortcuts for ant tasks – Idea allows you to assign keyboard shortcuts for ant tasks which increases productivity. For typical web applications I usually have two shortcuts: one for deploying web resources and one for compiling and deploying java classes. Eclipse didn’t pay too much attention to this feature. I know you can assign one shortcut (don’t ask me how – somebody showed me once and it was so complicated I didn’t bother remembering how to do it). And overall, changing keyboard shortcuts in Eclipse is somehow painful than in Idea. I guess this happens because Idea presents that tree (Settings/Keymap) containing Main Menu and Ant tasks amongst others. Eclipse has two tabs: View & Modify. View shows a long list and Modify shows two combo boxes. Guess the tree control is more suitable here.

5. Exclude folders – Idea has made it so simple to specify which resources you want to exclude from your project: like typical build, dist directories. This is useful for many situations. I’ll just name two:

a) you don’t want to see Idea’s “Updating modified files” loading bar every time you do build or dist your project

b) when opening resources such as XML files, you don’t wanna see two or three XML files with the same name and having to carefully choose which one you edit. In Eclipse it would’ve been so much simpler if they would have use the same Idea of excluded directories. I think I managed to do this once, to avoid the problem from point b), but now I can’t even remember how to do it.

6. Autosave – Idea autosaves each file. Don’t bother manually saving, confirming or discarding file changes. At first, I haven’t appreciated much the Idea. I thought: what happens if I don’t want to save what I modified? If all the text editors and IDEs out there need CTRL+S, why change it? I even found myself pressing CTRL+S out of habit. However, in time I got to appreciate this feature, since 1. it doesn’t bother you with all kind of popups asking whether to save your file or not before running the ant task and 2. it turns out I don’t usually need the option of not saving what has been modified. While it’s not a major feature, it does ease your life and save you from more unwanted mouse clicks.

7. Pinning/unpinning tools windows – Unpinning project window, console window, ant console window or ant window in Idea is a great feature. I usually unpin all my windows and have this way all the screen for editing my java files. And since I customized my keyboard shortcuts, I can easily bring up project window in the left side (I use ALT+~), ant window in the right side (I use ALT+\) and any of the lower windows (debug, run, ant console, etc – Idea’s defaults are ALT+0,1,2…). UPDATE: this can be actually configured also in Eclipse by using fast views on utility windows along with shortcuts for displaying/hiding them. When displaying them, they do however show up over the editor and always on the left side. Almost close to how Idea handles it.

8. Find usages vs References in workspace – Idea finds your usages, automatically selects the first usage, nothing wrong. Eclipse can look for references in workspace, find them, but sometimes forgets to select the first usage. If you have a hierarchy of 5-7 packages, then you’ll understand how painful is to have to open each package to get to the first occurence. I admit with latest versions, Eclipse does its job well almost everytime: searches and focuses automatically on the first reference, but I have no Idea why sometimes (rarely) it just doesn’t do it. It’s so frustrating when it happens.

9. Refactoring in non java resources – when I first discovered you can refactor names in an ant build file I was blown away by how natural this feature seemed. AFAIK in Eclipse you can’t do it (perhaps you know how to do it).

10. Export / import preferences – Idea saves every option you may customize – I still haven’t found some customization that Idea did not saved. As for Eclipse, it has a nice Import/Export preferences feature, but somehow they forgot to save code templates. Since I’m used to templates like “sout” (automatically transformed to “System.out.println” by Idea), I usually customize Eclipse adding a new template, which unfortunately doesn’t get saved when exporting your preferences. I like “sout” better than “sysout” since it’s … shorter.

Part 2 will contain 10 reasons for Eclipse.


You might also like

Develop with pleasure – IntelliJ Idea 6.0 Beta IntelliJ's Idea 6.0 Beta is out and available free for evaluation. Most expected features were GWT support,...
Intellij Idea versus Eclipse – part II >> 10 reasons why Eclipse is better Most of the following are not checked in Idea 6.0 which is...
Eclipse Java Autocompletion Not Working One day, after starting Eclipse 3.2, I noticed astonished that the autocomplete feature for Java classes...
New uses of the OSGi plug-in model I grew accustomed to the OSGi plugin model having developed some Eclipse plugins and RCP applications....
.

13 Responses

  1. Robert Enyedi Says:

    Marius, I’ve checked these items with Eclipse 3.2 and here are my findings:

    1. I don’t really know how this is done in IDEA, but in Eclipse 3.2 there’s the newly introduced concept of quick type hierarchy. When hovering on a type name, pressing CTRL+T shows its hierarchy in a rich popup tooltip.

    3. This was something that the Eclipse Callisto release wanted to solve. There are predefined download packages for creating Web applications, Plugins/RCP applications, C/C++ applications and a customized variant in which you download the base platform and you add new features via the package manager using the build-in Callisto discovery site. Eclipse is far beyond a Java IDE, so bundling all the available eclipse.org supported plugins is not an option.

    9. In Eclipse (3.2 and possibly 3.1) for any identifier from an Ant file there’s a “Rename In File” option in the contextual menu. I wonder if IDEA is able to do the same kind of refactoring for nested Ant files (which Eclipse obviously does not do).

  2. Marius Hanganu Says:

    1. In IDEA you simply have an arrow near the interface name. When clicking on the arrow you automatically get to see the list of implementing classes.

    3. Still, Callipso needs to be manually configured to get to the perfect build for you. And even more, Callipso does not offer all plugins available on the market. I may simply want to use other plugins than the ones offered by Eclipse – and you’ll end up in the same point. There are few things missing from IDEA to make it ideal.

    9. How true! Eclipse allows you such refactorings. Although the UI is a bit weird – you really don’t know where to edit, but it does support it. Good point ;-)

  3. Charles Lloyd Says:

    You make no mention of the respective debuggers — are they equivalent? I have found IDEA to be quite solid in this area.

  4. Marius Hanganu Says:

    I found debugging quite easy to setup and use with both Idea and Eclipse. I used debugging for Java apps, Web apps and Swing-SWT apps. In all cases both IDEs behaved quite well.

  5. Robert Enyedi Says:

    I would say that there is at least one point where the Eclipse debugger is better over the one from IDEA: reverse debugging. This is described here.

    Basically you can jump back in the debugging process to a previous place in the call stack.

  6. Ioan Cocan Says:

    Forgot to mention a great shortcut available in IDEA: Ctrl+Alt+Shift+N, Open symbol. That would look for a function name in all available resources: JS files, JARS, sources, etc. GREAT when you are looking for some weird JS function or even when you know a function name and cannot find it.

  7. Udaypal Aarkoti Says:

    I’m a big fan of eclipse but recently I switched to IDEA for the heck of it. I was so used to the keymaps of Eclipse that I’m finiding it difficult to move to idea’s keymaps.

    Here are few things I like about idea

    1.) JSP Debugging:
    I feel that debugging of JSP’s is lot easier in IDEA than in Eclipse. There is no need for additional plugins to debug JSP’s in IDEA

    2.) Web Application Deployment:
    Although I have used Eclipse very much I never found an easy way to create a war and deploy it easily. I like this feature very much in IDEA where you can build your WAR (very easy to configure) and deploy it quite easily (again there is no need for additional plugins). With eclipse we have to install additional plugins to build J2EE application or run Ant or Maven tasks.

  8. oefovmaqyt Says:

    Hello! Good Site! Thanks you! sswbiryiefrsgg

  9. gskdhfjk Says:

    In response to Robert Enyedi, IDEA has had the poping stack function, both are well implimented in regards to debugging, however I would recommend you have a look at the latest version (7.0 beta, free trial download), it has some really nice features, including new inovation in the debugging department.

  10. Hector Suarez Barenca Says:

    Hello guys, I have been using Eclipse for some year and I think is very easy to learn. Yesterday I decided to give a try to IDEA, and until now, It is so frustating!!!!!!!!!!!!, in Eclipse is very easy to deploy an application to tomcat, but in IDEA I had to do more steps, and I have a project that depends on another, It took me 30 minutes to find the options to build and run the project (It is my first time with IDEA!).
    I think is has a lot of options and It would take some time to get a custom with the tools, but until now I think that Eclipse is easier to learn. Anyway, this is my first time with IDEA, I hope better things in some weeks

    Regards

  11. Hector Suarez Barenca Says:

    I am not saying IDEA is better than Eclipse, It is just my first day!, I have read IDEA is better than Eclipse (in forums), and that is what I want to feel… :) Thanks

  12. Jones Says:

    I used Eclipse for a year with JSF projects, and then migrated to Intellij and boy, ain’t I glad I did that. After using Intellij Idea for 4 months now, I think I’ll never go back to Eclipse which is a pain in the a** for JSF projects

  13. Hans Says:

    I am using IDEA since version 3.x now. In some projects I was forced to use Eclipse and I found that partially very frustrating. But most annoying is the fact that Eclipse does not notice when files are changed externally. Example in one of our projects: start Eclipse, then, externally start the generate-process to create about 2000 files from a model (MDA). Then switch back to Eclipse… nothing happens. Solution: in the Package Explorer select all projects and hit F5. Then wait 20 minutes until everything is refreshed and rebuild. There are a few thousands of compile errors now. Go to Project, Clean all and wait again 10 minutes for rebuild. Finally continue work in the IDE.

    In IDEA: Start IDEA, generate 2000 files (MDA). Switch back to IDEA, wait 1 minute for IDEA to reload all externally changed files (automatically, no annoying confirmation boxes), hit Ctrl-F9 (make), wait 2 minutes to perform the make-process.

    Another thing: start Eclipse (this takes about 10 minutes on a project with 6000 classes, because of locking up the IDE while performing “Update SVN Cache”), in the mean time get some coffee. Get back with your coffee 10 minutes later and answer the confirmation dialog “Reload externally changed file?” with yes. Then wait for the other 9 minutes drinking your coffee.

    Cheers
    Hans

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.