IntelliJ vs. Eclipse

I have purchased and used intellij as my primary ide ]]>

I have used intellij and eclipse now and IMHO they are both really good IDE's. They seem to share many features like refactoring, code inspections ect.

I have only used eclipse a couple of times, I primarily use intellij. So here is my question(s)

What is it about intellij that makes it a better IDE. Please post "REAL" answers/features not "I don't like their interface"


What is it about eclipse that makes it a better IDE. To think that any single IDE truely dominates another in every way is probably not realistic.

I also don't want to start a feature request thread but I would like to see what features people are using in each that I may be missing.

66 comments
Comment actions Permalink

If you're looking for more warnings to add (something I heartily agree with), I'd be happy to redact a list of warnings from some of the stand-alone products and coding standards out there (JTest, PMG, Ambler's 'Elements of Java Style', etc.). Here's a few off the top of my head:

'if', 'for' or 'while' with empty body (i.e. if(x == 3);)
assignment to a method parameter.
assignment to a for-loop index variable
'switch' statement "fallthru"
'switch' statement without 'default'
statement label in switch statement.
Local variable or parameter hides instance variable
instance variable hides parent instance variable
'return' or 'throw' inside 'finally' block.

I could easily come up with fifty of these, and possibly over a hundred.

All of these should be warnings, rather than errors, as they only 'almost-always' indicate coding problems or design weaknesses.

0
Comment actions Permalink

I love these things. I personally inspect every file before I check it in. Even if I just checked out the code to do javadoc stuff. Could you also post the name of the other tools you use to find these things?

0
Comment actions Permalink

A quick google for "Java Static Analysis" is a good place to start. I'm currently evaling a few of these tools, which is why I jumped at Valentin's 'sure, we'll throw that warning in' post. Of the commercial products out there, JTest from Parasoft is probably the most full-featured. It has offline checking (i.e. like the IDEA Inspections pane) for something like 300 tests, as well as some very sweet Design-By-Contract and automatic test case creation stuff. For free products, PMG seems to be the best supported.

0
Comment actions Permalink

Valentin Kipiatkov wrote:
>>search of overloaded methods/constructors


Interesting. I don't remember I saw this feature. What's it?


In Eclipse, you click on the search bttin (from the toolbar, not from
the editor ctx menu) and select the tab 'java serach' and play with the
options there.

I requested it too for IDEA :
http://www.intellij.net/tracker/idea/viewSCR?publicId=11931

that the IDEA team still left as submitted.

As I pointed out,
I actually need the serach for overloaded constructor more often than
the search for overloaded methods, because I more often need an answer
to "where are this type of objects instantiated" ?

Edo





0
Comment actions Permalink


I've also got a Tracker request in for "search for places this class is instantiated" (#11919). It's stuck in state "Submitted" as well. One difference between what you're asking for and my request is that mine would find calls to constructors of sub-classes of the current class.

That said, I can't imagine why I would want to search calls to overloaded methods (as opposed to constructors), but then again I very rarely use overloaded methods anyway.

0
Comment actions Permalink

Dave Griffith wrote:

I've also got a Tracker request in for "search for places this class is instantiated" (#11919). It's stuck in state "Submitted" as well. One difference between what you're asking for and my request is that mine would find calls to constructors of sub-classes of the current class.

very interesting ... should go in as an option!


That said, I can't imagine why I would want to search calls to overloaded methods (as opposed to constructors), but then again I very rarely use overloaded methods anyway.

I find myself wading through existing code where over-loading is
over-used ...

Edo

0
Comment actions Permalink

I see. I myself remember that I was wishing for this as well many times.
Seems to be a useful feature.

--
Valentin Kipiatkov
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"

"Edoardo Comar" <e.comar.no.spam@no.spam.btinternet.com> wrote in message
news:3EC25412.6020508@no.spam.btinternet.com...

Valentin Kipiatkov wrote:
>>search of overloaded methods/constructors
>
>

Interesting. I don't remember I saw this feature. What's it?

>

>

In Eclipse, you click on the search bttin (from the toolbar, not from
the editor ctx menu) and select the tab 'java serach' and play with the
options there.

>

I requested it too for IDEA :
http://www.intellij.net/tracker/idea/viewSCR?publicId=11931

>

that the IDEA team still left as submitted.

>

As I pointed out,
I actually need the serach for overloaded constructor more often than
the search for overloaded methods, because I more often need an answer
to "where are this type of objects instantiated" ?

>

Edo

>
>
>
>
>


0
Comment actions Permalink

i would want (some of) these warnings to have "lint comments" to signal that they are intended. a great example of this is switch fallthrough: sometimes it's just so much clearer to code using that pattern. when i do it, i always add a comment like //fallthrough.

i agree that catching it when it's not intended would be great, but again, i wouldn't want it warning every time i intended to use it. that would discourage me from using the pattern when it is useful.

0
Comment actions Permalink

I have to agree with you there.

I often(but not always) code using positive logic. So, there are times when I will have code in the else block, but nothing in the if block.

On the flip side, I also code the empty else blocks to go along with the if block.

I sometimes use a //nop to indicated that no operation is intended; such as in a for loop that does not need any instructions beyond those in the for statement.

Partly it is a force of habit, partly a coding style. I definitely don't want a warning for each one.

0
Comment actions Permalink

I wasn't referring to empty control blocks (which are odd, but clearly intended) but rather empty control bodies entirely, which are normally typos.

In other words, I'd very much like a warning on

but (probably) not on

and certainly not on

0
Comment actions Permalink

I have used both.

I do find IDEA a little easier to use than Eclipse, though there are some things that are better implemented in Eclipse(for example, refactoring literal code into a constant is much better in Eclipse).

But, the last time I checked into Eclipse's idea of key bindings, it was pretty sad(the original version of it was even worse). And neither Eclipse or IDEA has anything in the way of customizable toolbars or menus; not everyone is a keyboard junkie(some of us are mouse junkies).

I used Eclipse up through January, and only switched over to IDEA after the huge price drop for the personal license. Until that time, I could not justify purchasing IDEA over Eclipse, based on how I work.

In our office they actually use WSAD, so I get that for free, if I wanted to use it. But, the version we are using is 4.0, which is based on the older version of Eclipse(the lastest version is much better).

I have not checked out Eclipse for a few months, though I do plan on checking out the latest release and continue to follow their program. I am also following CodeGuide, which seems to be a step or two behind IDEA right now; and they really need to start using tabs for each file and get rid of the dropdown box.

As for working over someones shoulder, I usually don't have much of a problem with that, no matter which editor they are using. Fortunately, most options and features can be found in the dropdown menus or toolbars, so I can usually find what I need, when I need it.

Overall, for me, while some of the refactorings and such are really nice, it is some of the creature comforts that I find that make the difference, which is what set IDEA apart for me over Eclipse(and which is how I had to value what I was willing to pay for those comforts).

IDEA's auto-completions(especially since I map them to the ` key for easy access) and templates are easier to use, along with a few other things.

IDEA can also handle JSP, which Eclipse cannot(though WASD can).

But, the plugins have probably been the saving grace and the final deciding factor, because they have either added functionallity I wanted or disabled/altered functionallity that got on my nerves.

0
Comment actions Permalink

I understand, but I also find it good to bring it all to the table. I can see the leap from the fall through being extended to empty blocks(but, that is just me).

0
Comment actions Permalink

Compuware's JavaDevPartner now has a standalone tool to check for
compliance with the 50 items in Joshua Bloch's Effective Java, indexed
by item number.

During the last beta cycle, I asked them to make it standalone with ANT
tasks for Linux so it can go in the automated build system we use.
Assuming they implement that, a pretty nice toy.

Perhaps IDEA could have a warning page with the Effective Java items
grouped together?

Scott

0
Comment actions Permalink

Nice! It would be great if IDEA could do something similar.

0
Comment actions Permalink

Got a Link for us??

0
Comment actions Permalink

http://www.compuware.com/products/devpartner/java.htm

A quick overlook didn't reveal anything on support of Effective Java idioms... Better link would be appreciated but don't have time for that right now...

Best,
Chris

0
Comment actions Permalink

I guess I need to start reading the "Tip of the Day"
:)


Definitely; the IDEA Tips of the Day are very informative and well done. In fact, IDEA was the first application which did not make me turn them off immediately. It was really sad when I had started up IDEA so often that I had read through all of them!

Regards,
Jens

--
Before you criticize someone, you should walk a mile in his shoes.
That way, when you criticize him, you are a mile away from him and you have his shoes.

0
Comment actions Permalink

IDEs I have tried more than a few. Java development is what I do. There are none the keep in sync and the code flowing like IDEA. Those of you who have tried other know the "intelligence" and "pleasure" that I am speaking of. It is the basis of IDEA what sets it apart from others. Its goal is not the be-all-end-all of tools. It is not the bloated tool with wizards galore. True it does not do everything but everything that it does it does very well and has been designed with awe inspiring quality and functionality. I have been using IDEA for about a year and a half and to there are still those days when I say to myself, "Damn! This tool is smart".

To the folks at Jetbrains keep up the good work and while you are racing to add newer and newer functionality don't forget where your roots are. Don't forget what makes IDEA such a great tool.

To your success.

Justin

0
Comment actions Permalink

|What is it about intellij that makes it a better IDE.
|Please post "REAL" answers/features not "I don't like
|their interface"

Unfortunately, there are no "killer features" that IntelliJ has tha Eclipse does not. Instead, there are 101 subtle-but-significant differences in implementation. In addition, Eclipse are stealing IntelliJ features like buggery!

In the end, you need to sit down and work with both of them to appreciate the argument: "Well, IntelliJ is just... better!".

IntelliJ is just way more polished than Eclipse. The JetBrains guys pay very close attention to detail - and this makes the difference between the IDE being a pleasure to use (and fast!) - and it being "just another IDE".

Everyone I know that has used them both for any length of time comes to this conclusion.

Is that worth USD$500?

I would pay for my own copy if I had to.

-Nick

0
Comment actions Permalink

Dave Griffith wrote:

A quick google for "Java Static Analysis" is a good place to start.
For free products, PMG seems to be the best supported.


The Google search did not find Checkstyle
(http://checkstyle.sourceforge.net) for me, so I'll mention it here.
It's free (LGPL), actively developed, heavily used (e.g. most jakarta
projects) and well supported (mailing list).

Checkstyle 3.1 will be released very soon, with lots of new Checks, see
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/checkout/checkstyle/checkstyle/docs/releasenotes.html?rev=HEAD

Cheers,
Lars

0
Comment actions Permalink

In addition, Eclipse are stealing IntelliJ features like buggery!


You noticed that too, ehh?! It seemed awfully coincidental how each release up to and including 2.1 of eclipse became more and more feature-similar with IDEA. I suppose biting ideas from another application is nothing new to the game but I can't help to feel that this is a little unjust to take ideas after the long hours of toiling out their functionality and design and just copy...and then give it away for free. It is safe to say that it pisses me off because I can respect a product like IDEA and I would like to see it get the attention and popularity it deserves.

0
Comment actions Permalink

Well, some of us follow more than one product, and some of us submit the same requests to multiple products. Sometimes, it is just which feature gets implemented by who, first.

I recently switched from one FTP client(that I had used for about the last 7 years) to a new one, because they implemented the features I wanted and needed first.

But, yes, sometimes, it is simply copying features from one to the other. However, if a feature is truly unique/distinctive enough, the product vendor can always file for patent on the feature.

Should cut and paste only be limited to the application(s) that first implemented it? Should auto completion and active error checking be limited to the application(s) that first implemented it? Which features should other IDEs not implement because they are already in IDEA?

0
Comment actions Permalink

And to add, sometimes, more than one individual or group will come up with the same idea for a feature without ever seeing it in another product before hand. So features are just logical extensions of existing features, methodologies, or work flows.

0
Comment actions Permalink

I think the feature thing goes both ways. I posted an "Eclipse does this why doesn't intellij" to this thread that will now be implemented in Aurora.

Copying is the sincerest form of flattery ;)

0
Comment actions Permalink

However, if a feature is truly unique/distinctive enough, the product

vendor can always file for patent on the feature.

I suppose patents of such kind are just ridiculous. Personally I do not mind
of copying IDEA's featrues by other products. I'm happy when we find
something to copy from other products as well (that unfortunately does not
happen very often).

--
Valentin Kipiatkov
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"


"zmbs" <jiveadmin@jetbrains.com> wrote in message
news:26378844.1053096082215.JavaMail.jrun@is.intellij.net...

Well, some of us follow more than one product, and some of us submit the

same requests to multiple products. Sometimes, it is just which feature
gets implemented by who, first.
>

I recently switched from one FTP client(that I had used for about the last

7 years) to a new one, because they implemented the features I wanted and
needed first.
>

But, yes, sometimes, it is simply copying features from one to the other.

However, if a feature is truly unique/distinctive enough, the product vendor
can always file for patent on the feature.
>

Should cut and paste only be limited to the application(s) that first

implemented it? Should auto completion and active error checking be limited
to the application(s) that first implemented it? Which features should
other IDEs not implement because they are already in IDEA?


0
Comment actions Permalink

I'm happy when we find
something to copy from other products as well (that unfortunately does not
happen very often).


hehe... maybe so, but I'm glad because that means I would have used
something else besides IDEA ;) That also speaks volumes to how inovative
you guys are!

R


0
Comment actions Permalink

On Fri, 16 May 2003 14:41:22 +0000, zmbs wrote:

Should cut and paste only be limited to the application(s) that first
implemented it? Should auto completion and active error checking be
limited to the application(s) that first implemented it? Which features
should other IDEs not implement because they are already in IDEA?


This reminds me of Borlands patent on two way design tools. It would
seem, from reading the patent ( cant find the URL off hand ) that pretty
much any modern GUI design tool, violates it. Which is stupid.

--
...turn to the light - don't be frightened by the shadows it creates,
...turn to the light - turning away could be a terrible mistake
...dream theater - the great debate


0
Comment actions Permalink

At the moment, the functionality is available through a technology preview, but unfortunately there is no information on the web yet.

We are working on a new version that will certainly provide ANT support. We are planning to start an early access program for this within a few months.

Edwin Hautus
Software Architect
Compuware

0
Comment actions Permalink

My company is too cheap to pay for development tools these days. I bought my own copy of Intelli-J with my own money. I may get paid well enough to write code but not to suffer. :)

0
Comment actions Permalink

ECLIPSE wins on:
multiple debugger instances
VSS plugin
better usage of screen estate


You must be kidding. Sure you are, noone can be serious about any other IDE being better than IDEA in screen space usage. The side sliders were a great idea, and I simply can't live without them now.

I try eclipse from time to time. They have great features, but I simply can't live with that 'sticky' eclipse views. Yeah, I know they have a "fast view" feature -- but fast views are only dockable on the left side and you can't assign shortcuts to them.

0

Please sign in to leave a comment.