Eclipse vs. IntelliJ IDEA
Was given IntelliJ IDEA 6 for free, last week, for presenting at the local San Diego Java Users Group. Very nice gesture SDJUG and JetBrains!
Only played with IntelliJ IDEA for about an hour, so far...
Here's some commentary:
Pros:
1. Has support from Subversion, CVS, JavaScript, EJB 3.0, Google WebToolkit, CSS, HTML, JSP, & Web Services, all built-in, right out of the box!
2. Seems like it has a powerful debugger.
3. Everything looks a lot better (the fonts are aesthetically pleasing) and runs faster.
4. Seems to have better intelli-sense and code completion. Even supports annotations and has useful custom annotations built-in.
5. Seems to be very useful when one is doing hard core J2EE development (Servlets, JSP, EJB, App Server Config, server side debugging, etc.)
6. Has JUnit 3.8.1 support built-in.
Cons:
1. What I can say so far is that it seems a lot more complex than Eclipse.
You set up a new project and then need to set up module (sub-project), under IDEA.
I like Eclipse's Project Layout better...
2. I created a "Hello Unnsse" program, just to see it run from the Console, it compiled and ran correctly but it did not launch a Console view.
I also could not see anywhere I could "Show the Console" view. Doesn't seem as customizable (by dragging and dropping perspectives as you can in Eclipse). I am sure I'll be able to do all of this or find a walk-around, some time, in the near future.
3. On OS X, everything ran smoothly, but on WinXP every-time I click on the "X" in the top right hand corner, it crashed! This happened like 3 times!
Am definitely going to report this to JetBrains.
4. Really heavy duty. Lots of refactoring and keyboard hot keys.
5. When I did a SVN Import of one of my projects, it asked where to create and name the top-level directory (didn't make it for you, by default!), and that was it! Didn't make a new project with the appropriate sub packages / folders. Need to still figure this out. This is really annoying.
6. Eclipse 3.2 lets you choose between JUnit 3.8.1 and JUnit 4.
Even though consists of equal number of line items with "Pros" and "Cons", I am still frustrated with several of the "Cons"....
I am sure that after a while I will have a better evaluation and a different opinion regarding IDEA.
14 Comments:
Unfortunatly, SVN doesn't rock with IntelliJ.
I encountered a lot of problems with the SVN client embeded in IntelliJ 5.2. We have to use Tortoise in parallel.
That execpted (but it is s BIG thing) , I prefer IntelliJ.
I had been given an Open Source License of IntelliJ IDEA some time ago. I am surprised you say it feels fast for you, for me it is quite a "moment eater" from time to time. I've read recently on javalobby about options that can speed up IntelliJ a bit - http://www.javalobby.org/java/forums/t83508.html and look for "-XX:MaxPermSize=99m" on this page ;)
The intelli-sense and code completion is a lot better in IDEA. That's one of the biggest things I'm constantly swearing at Eclipse about because I'm so used to the IDE doing so much of my work for me.
I find Eclipse to be much more complex than IDEA, but that's clearly a "what you're used to" kind of thing.
As far as the Project/Module thing goes, it's more a difference in terminology. A "project" in IDEA is essentially a "workspace" in Eclipse. A "module" in IDEA is a "project" in Eclipse. You're got to love the flexibility of the English language... :-)
There's no "Show Console" view because there doesn't need to be one -- the console is more closely tied to the context in which it runs. So, for example, if you do a "Run" then the console is in the "Run" view (look at the bottom of your IDE). If you do "Debug" then it's in the "Debug" view. Etc. It's just different than the way Eclipse does it.
You listed "Really heavy duty. Lots of refactoring and keyboard hot keys" as a Con. Why? That sounds like a major Pro. I'm curious to why you think that's a bad thing in any way.
For the last thing, JUnit 4 and TestNG are supported via plugins. Like in Eclipse, there's a plugin for everything.
I hope that clears some things up for you. (Note, I'm not affiliated with Jetbrains in any way. I just think they have a great product.)
IDEA 6 fully supports jUnit4 out of the box
I was a heavy Eclipse user for years, I've really found it to be a great tool except for a few things: 1) It was buggy on the Mac (which has since been addressed) 2) I worked on a project that required JDK 1.3, which Eclipse did NOT handle well, which forced me to use another IDE 3) Eclipse Plugins frequently clobbered each other with incompatible dependencies (partly addressed with Callisto) 4) Error and warning highlighting is not as good as it should be.
I've recently started using IDEA. My biggest hurdle with adopting it is that the keyboard shortcuts seem a little wonky. It took me quite a while to adapt to using it and I still think I prefer Eclipse/Netbeans/Visual Studio keyboard shortcuts. I also prefer using Eclipse's Visual Editor for developing swing components to IDEA's UI forms. Other than these 2 gripes I much much much prefer using IDEA over Eclipse
I was a heavy Eclipse user for years, I've really found it to be a great tool except for a few things: 1) It was buggy on the Mac (which has since been addressed) 2) I worked on a project that required JDK 1.3, which Eclipse did NOT handle well, which forced me to use another IDE 3) Eclipse Plugins frequently clobbered each other with incompatible dependencies (partly addressed with Callisto) 4) Error and warning highlighting is not as good as it should be.
I've recently started using IDEA. My biggest hurdle with adopting it is that the keyboard shortcuts seem a little wonky. It took me quite a while to adapt to using it and I still think I prefer Eclipse/Netbeans/Visual Studio keyboard shortcuts. I also prefer using Eclipse's Visual Editor for developing swing components to IDEA's UI forms. Other than these 2 gripes I much much much prefer using IDEA over Eclipse
I would be fun to hear what you think about IDEA after longer use. My Experience with it was this.
1h use: Some features are nice, but I don't understand others, and why don't they have this and that.
3days use: It has everything plus more. I will never use another IDE, or at least it will be a while before I switch to another, why didn't I start using IDEA earlier.
And when I first tried Eclipse:
1h use: Crap why can't I even compile a simple HelloWorld program (probably better in newer versions).
3days: I guess it might be possible to do a project with this IDE but I don't really know if it is better than Emacs or not yet.
2weeks: uninstall this crap I can't even install the new version and the old was buggy (didn't even start after installing a plugin everybody said was necessary). I will go back to Emacs/JDEE.
But I know people who still use Eclipse so it can't be all bad, maybe I tried it to early (version 2 something). And it is free which IDEA is not.
PS I have no connection to JetBrains whatsoever except being a happy paying customer.
tonic_whp, Jim, anonymous, and hohonuuli:
Thanks for the comments!
WOW, I just gave my friends and colleagues this new blog address, its amazing how quickly it was discovered by all of you!
tonic_whp:
Thanks for the URL reference! I use the MyEclipseIDE (see: www.myeclipseide.com) plug-in for my J2EE development and I also had to increase the JVM's heap for optimized use.
IntelliJ IDEA just seems for some odd reason faster than Eclipse.
Jim: Excellent comment! You helped me understand the difference between Eclipse's & IDEA's respective project structures.
The reason I say that the hot keys and refactorings seem as a "Con” in regards to IDEA is because I guess that I am more used to Eclipse's hot keys and haven't spent enough time to acquaint myself with IntelliJ IDEA's. I agree with hohonuuli that Eclipse's hot keys and short cuts have a more universal feel.
The biggest draw for me is that Eclipse has a particular hot key which lets you see all the hot keys / short cuts:
Command-Shift-L (on OS X)
Control-Shift-L (on WinXP)
Whereas in IDEA you have to use a PDF file to see all of them!
The biggest reasons I guess I like Eclipse over IDEA are (sorry, I didn't put these additional reasons into my original posting):
1. Eclipse has an Object Browser (4 panes displayed, side-by-side which have Projects, Packages, Objects, and Methods) similar to a lot of traditional Smalltalk IDEs. & IDEA doesn't.
2. Am used to Eclipse's refactorings, hot keys / shortcuts moreso than IDEA
BTW, how can I universally display Apple's Command Key for all browsers? On my Apple computer, I can see it fine within Firefox...
But my colleagues supposedly can't see in Firefox from their WinXP machines. Is there an easier way to do this (different unicode or use image instead)?
Its this particular unicode encoding: ⌘. I found it at this source (see: www.fileformat.info/info/unicode/char/2318/index.html).
Thanks for all the useful comments, gentlemen!
I'll keep all of you posted regarding my findings!
Your post was "discovered" by the guys at Jetbrains: http://blogs.jetbrains.com/idea/2006/11/eclipse-vs-intellij/
In the Project pane, take a look at the buttons at the top. You've got all your Object Browser stuff. (Or you can have it broken out in the Structure pane.)
I've found the Ctl-Shft-L feature in Eclipse to be of marginal use, personally. When I need a feature for the first time I look in the menu (either menubar or right-click) and the key command is listed right there. So the next time I need a feature I've already learned the keyboard shortcut. Otherwise, the long list in Ctl-Shft-L isn't really any different than the list in the PDF (except having to leave the program).
I wonder if you saw this blog post (a propos keyboard shortcuts) - http://blogs.jetbrains.com/idea/2006/09/fun-stuff-can-be-useful-too/
The main things I prefer about IDEA over Eclipse are the relative simplicity of the UI (no perspectives -- which probably means it's less powerful, but if I'm not using any of that power...) and the richer and more capable set of refactorings. Some refactorings that I'm used to using heavily (Safe Delete) just don't exist in Eclipse. A lot of the refactorings that are present in both don't work as well in Eclipse -- either they don't work in as many contexts (Introduce Parameter) or in they produce weird intermediate artifacts in the refactored code (Move Member Type to Top Level).
We've standardized on Eclipse at my current job, so I use it, but every so often I do have to sneak over to IDEA to do a refactoring. The nice thing about IDEA's project/module handling vs. Eclipse's workspace/project handling is that it's really easy to set up an IDEA project on top of an existing code checkout.
I started out with Eclipse 2.0. Tried using it without a manual and got nowhere.
Then I tried intelliJ. Everything was so intuitive.
Considering that intellij costs $$$ and eclipse was free, we were happy to pay for intellij. If you knew what a cheapskate I am, this is saying a lot!
I've had to use eclipse 3 since (for about 9 months now) so I know more about it now than before but am afraid intelliJ still kicks eclipes butt.
I like IDEA 4.5 It doesn't deal with jsp too well, but otherwise, it's very solid and useful. There are execellent plugins such as SQLPluging and TagSwitch.
I tried out IDEA 6 and was massively impressed, initially. Got some completion in jsps. But, after two days of use, I experienced the following
* At 3 random times in two days it went nuts grabbing memory. It ground my system down to a crawl (amd64 X2 4800+ 4GB Memory.) I had to kill it each time when it was through all 4 gigs and about 50% through my swap. I'm using Sun java 1.5, and have permsize set to 199mb
* It seems to Parse Files just a bit too often. And it can't do it in the background. Perhaps it's timing out on something. I don't have time to sort it out.
* The debugger has just stopped working. It starts and just sits there with a spinning icon, never finishes or breaks.
3 major problems is too many!
So, I'm back to 4.5 A tool dev on our project is working out the kinks with Eclipse for us. I want to give that a try. However, from the reports all around the web, I'm not expecting to like Eclipse too much.
Is there no IDE that can edit (command complete, syntax check, etc) all the bloody source in a J2EE project: (java, xml (struts, spring, hbm), jsp, tag libs (struts, jstl - like command complete the var in <c:foreach var=..., custom tag libs, sql/hql - well, that's a stretch, but is it too much to ask that we get completion when typing hql?
gene - genecampbell8 at yahoo dot com
I just found this, while looking for some evidence as to why people are using IDEA.
Where I'm struggling:
- It's a pain in the ass to try to do AspectJ development in IDEA.
- SVN support in Eclipse has overtaken IDEAs (well... we're on IDEA 7, not 8)
- You can't upgrade for free... so you get stuck with bugs in stuff like SVN.
- MyEclipse is now a good competitor to IDEA as a paid-for product
- Eclipse is CONSISTENT and flexible - I love perspectives. I love being able to have as many panes in view as I like.
- Eclipse has fewer keyboard shortcuts to learn
- I can go and submit patches if a bug really annoys me in Eclipse. I can't do that in IDEA.
Sorry.. but for me, Eclipse is demonstrating the power of open source. It's got fantastic community support, and it's accelerating
Post a Comment
<< Home