Blogbody Rotating Header Image

IDEA Really is That Good

Saw this post, titled IntelliJ IDEA Just Works, the other day:

Sebastiano Pilla wrote a very interesting article about his experiences with the top four IDEs. After testing each one according to his criteria, his pick was IntelliJ IDEA:

    “IDEA simply worked without getting in my way with arbitrary limitations. Where it shines is in the editor, the configurability and the speed at which everything operates: in a “shopping list” of features it might lose to the others, but it wins because the implementation and the design feel more consistent to me.”

The lesson is clear. Comparing IDEs by simple feature lists won’t necessarily find you the best IDE. You need to actually try it to be sure it will be right for you. Look for an IDE that boosts your productivity by doing what you expect it to do without getting in the way, i.e. it ‘just works’. A feature list might tell you a feature is there, but it won’t tell you how well it works.

(Via http://blogs.jetbrains.com/idea/feed/atom/.)

At my new place of employment (more on that soon), just about everyone uses Eclipse. As someone who has used Eclipse both in the past and more recently, I consistently find myself trying to explain why IDEA is so good.

This is my attempt to explain my favorite “features”. I say “features” because many of these aren’t the type of bullet-point features you might see in a direct comparison (ie: “EJB3 Support”, etc), but rather little nuggets that really do make the difference and make me more productive:

Way smarter code complete

Can go beyond the basic support provided by eclipse and can even narrow the completion down to only objects that are type-safe. That is: it won’t show you a variable that, if selected, would result in a compile error.

Camel case understanding

When finding classes, doing code complete, or just about anything else, IDEA understands that when you type “fUM” you really mean “fanstasticUserManager”. It’s a nice touch that saves a lot of typing.

Smart inspections

People who write code in IDEA often write code that is not as clean, and that is due to IDEA’s built in smart inspections. It can do things like highlight when an “if” statement can be simplified, or when a null check will always be true.

Easy to act on

Once one of these warning or error inspections pop up, IDEA makes it trivial to take action on it and fix it. Got a missing import? Alt-Enter. Have a redundant if statement? Alt-Enter. See an unused parameter? Alt-Enter. Usually IDEA will give you a few options, such as removing the offending code, changing it, or even suppressing the warning for the statement, method, class, project, or globally.

It knows what you mean

IDEA is smart. It keeps track of how I name my variables and learns over time. At first, if I am creating a new variable of type BananaSundae, it’ll recommend bananaSundae, sundae, and banana, in that order. But, over time, if I keep naming my BananaSundaes simply “ba”, it’ll start prompting that.

Best HTML editor in the world

This is not an understatement. Ruby-fanatics even admit their beloved TextMate has nothing on IDEA (right Dion?). Heck, at my company, our VP of Marketing (who gets hands-on w/ web design) now uses IDEA and swears by it. Why? Because it speaks fluent CSS, HTML, and JavaScript. And all those nice inspections work here too. It’ll highlight unused CSS declarations. It’ll help you find usages for JS functions and CSS classes. It’ll even point out the fact that “0px” is redundant and can simply be “0″… and you don’t have to delete “px”… remember, just press Alt-Enter!

More

I could go on and on, but this list would literally end up being numbered in the hundreds. The point is: IDEA really does do a ton of small things that make programming faster, easier, cleaner, and less error-prone. I can’t tell you how many times I open up code written in Eclipse and immediately see lots of yellow dashes where the code could be cleaner (ie: e.printStackTrace uses, redundant code, synchronized blocks on non-final variables, etc).

And most importantly, it never gets in the way. In fact, it even makes it easy to tell it not to get in the way: if there is an inspection you just don’t want to see anymore, Alt-Enter and there is an option right there to turn it off forever.

I’ll part with this little nugget: the other day I was tracking down a reported bug that the screencapture capability of HostedQA was cropping incorrectly. I opened up the relevant class and IDEA immediately showed me the problem:

smart_idea.png

Can your Eclipse do that?

1 Comment on “IDEA Really is That Good”

  1. #1 Zarar Siddiqi
    on Apr 13th, 2007 at 12:39 pm

    I’ve also tried Eclipse, Netbeans and JBuilder but Idea blows them out of the water.

    Some of my favorite small but great IntelliJ features:

    - Ctrl+Shift+N = search files
    - Alt+F7 = find usages
    - Optimize Imports
    - Refactoring variables/methods
    - SVN integration diffs
    - AutoComplete for property files

    I could go on for hours..

Leave a Comment