Why IntelliJ IDEA sucks 57

Posted by wsargent Sun, 27 Feb 2005 02:25:00 GMT

I really wanted to like IntelliJ IDEA. I had heard great things about it, heard people talk about the featureset and approach that IDEA had that made it superior to Eclipse. I loved the JSP support in IDEA, and hoped that it would translate into the rest of the system.

I had trouble understanding IDEA’s IDE, but I put it down to inexperience and a mindset based on Eclipse. I didn’t like the way that IDEA managed projects. I didn’t like that I couldn’t open up two projects inside a single frame, or that when I created multi-module projects, it assumed that I wanted the modules in different directories. I didn’t like the amount of time it took to open a project, even when it had already been parsed. But I bumped up the heap size, tweaked some VM parameters and I was generally okay with it.

Going into the IDE itself was an educational experience. From the first glance, it was obvious that Eclipse’s features have been copied from IDEA. This isn’t bad in itself. I’m willing to bet that much of IDEA was copied from JBuilder. However, it had the effect of pitting Eclipse’s feature set directly against IDEA. Most of the time, Eclipse wins.

Eclipse wins because IBM had time to sit back and think about how to present a coherent UI. It had time to think about what developers did and did not want to see. It noted carefully what developers do not want to think about. And it didn’t even have to try that hard, because IDEA has some of the most cack-handed, bone-headed UI decisions I’ve ever seen.

Take completion. Completion is the anticipation of programmer’s thought. When I hit a completion key, I’m effectively asking the IDE “What do you want to go here?” I want a best guess at all the possible options. It’s a long time HCI practice. Unix shells, Apple GUIs, and even Google all use completion in some form or another. But I can’t do this in IDEA.

Because IDEA has three different code completion methods, all with different keystrokes.

There’s Basic (Ctrl-Space). There’s Smart Type (Ctrl-Shift-Space). And there’s Class Type (Ctrl-Alt-Space). I’ve never seen anything like it. I can’t understand how an IDE can be smart enough to introspect all the information in the system and too dumb to figure out how to merge that information into a single list.

Templates is another system entirely. If you want to complete out a template, it’s Ctrl-J (or Tab, if you’ve typed it out first). If you select a block of code and try to surround it in a live template using Ctrl-J, it shows the normal templates. It thinks that I want to replace 150 lines of code with a for loop instead of wrapping it in a transaction demarcation. If I want to surround with a live template, it’s Ctrl-Alt-T. Ctrl-Alt-J also does a surround with template, but I’m still not sure exactly what the difference is. Live templates are fun, but must be distinguished from normal templates, and are lacking in variables (notably, you can insert the methodName into a live template, but there’s no way to insert the method arguments as a param).

Not only that, but the awareness of context is weak compared to Eclipse. There’s no way to filter out classes you’re not interested in. If you had to use a com.sun.* tool, then you are provided with Sun classes, whether you want them to show up in completion or not. Hit completion inside a method call like this: string.getBytes() and it will show you the possible options only if you haven’t typed anything in there. If you want to see the possible parameters to that method call when it’s already been filled in? Ctrl-P. How intuitively obvious.

This weakness of context applies all the way through IDEA. When the cursor is on a class and I right click on it, I want to see refactoring operations that are specific to that class. When I’m on a method, I want to see operations specific to that method. IDEA gleefully ignores this idea altogether. IDEA has so little clue it even asks me if I want to apply Java refactoring to JSP pages.

Then there are the obvious misses. I can’t bind “Generate Getter & Setter” to a keystroke. Instead, I have to hit Alt-Insert, and pick it out from a list of “Generate” options. This is not a casual complaint – most of the code I write has to use javabeans in an IoC framework. I can’t even edit the getter and setter bodies from the generator.

If I want to generate a new class? There’s a class generation dialog, but it just has the name. I can’t pick out the package, interfaces and have the superclass constructors generated for me. It’s by hand, using the “Class Type” completion and the Generate box.

If I want to search for a class? Ctrl-N, but no! I have to hit the little checkbox that indicates I want to search for a class outside my project! It’s really Ctrl-N, Alt-N, for that special Emacs feeling. Plus the classes I’d like filtered out, because I’m not interested in the latest Xalan implementation.

Want to search for usages of a class? I want to search through Projects and Libraries on most of my classes. And the “Libraries” section is over 25 MB of classes. IDEA will do a linear search through every file I have the first time I call this method. Enough time for me to break for a coffee. It’s so pitiful it’s embarrassing.

Want to create a new method? Have a variable called foo and you’re typing “getF”? Want to override a method from a superclass? You’re typing a method with four parameters, all of which can be guessed from context, and you want the IDE to fill it out for you? Good luck with that. Ctrl-space will do nothing. You’ll have to figure your own way out with the appropriate keystroke. (For the impatient, implement method and override method will do some of it, but only from a dialog box.)

And then there’s the intention actions. This works exactly the same way it does in Eclipse, so I don’t see anything to scream about. I hit Alt-Enter in IDEA, I hit Ctrl-1 in Eclipse. Except that if I have a method like this

public String getFoo() { ... }

public void doNothing() { getFoo(); }

And I try to hit Alt-Enter in IDEA with the cursor on getFoo(), nothing happens. I have to specifically introduce a variable, which is Ctrl-Alt-V. Whereas Eclipse will figure out from context where I am and what I want to do.

I’ve seen nothing in the core Java editor that makes me want to use it. The plugins, by and large, are useless (don’t even get me started on the Subversion or Perforce integrations) and the UI (pure Java though it is) is only just barely past jEdit. I don’t care about the GUI builder, generics support, or AOP support.

I like the way that javabean properties are handled in the outline pane. I like the “Analyse Code” feature (although I prefer PMD, quite frankly). I like the JSP editor. I like that IDEA will detect javadoc @params that don’t exist in the method (although I’ve since discovered that Eclipse 3.1 can also do this). I like the way it treats J2EE applications as submodules of the main project.

But it’s not like IDEA is reading my mind. It’s more like I’m trying to read IDEA’s mind. I spend half of my time on IDEA trying to get it to do things for me that it should be smart enough to do for me automatically. And worse, it doesn’t do anything significantly better than Eclipse and its associated plugins.

So farewell, IDEA. You were a good learning experience, but about as useful to my everyday job as that two week vacation I wasted learning Ruby.

EDIT: also see here on Jon Eave’s site.

EDIT 2: Also at Software is too expensive to build cheaply…

Comments

Leave a comment

  1. Anonymous about 4 hours later:

    its funny i feel the same thing about eclipse…it sucks and is completely unintuitive compared to idea.

  2. Dmitri Colebatch about 5 hours later:

    I’m sure you’ll get a fair amount of emotion based responses, but I might offer you a couple of counter-arguments on some of your points:

    1. Three different code completion methods: Obviously the set of options to search through is different on each option, and hence the cpu involved. I rarely use anything other than Ctrl-Space. I like having the control over how much cpu IDEA puts into figuring out what I want it to do. Having said this, as you argue later the performance of searching is potentially an option to make this a no-issue, but I fail to see how a wide search scope will ever be as fast as a narrow search scope, and based on this I like the control.

    2. Searching for classes: I’m not sure why you are so often searching for classes outside your project. Surely the javadoc will actually convey what a method does. If it does, then I’m not sure why you’d need to actually read the source code of that class. In any case, I would assume that you are interested in looking at classes that the class you are editing uses - in which case simply navigate the cursor to the method you are interested in (I’m assuming that you’re calling the method, otherwise why would you want to read it?), and hit Ctrl-B.

    3. Introduce parameter: Inside a method body Ctrl-Alt-P will replace the variable the cursor is over with a parameter, and have all found calling methods pass that value to the method. I think this is what you are looking for rather than the approach you were trying.

    For the record, the last 3 companies I’ve worked at have changed to using IDEA (none were previously using Eclipse) based on my recommendation and none have looked back. Having said this, I haven’t looked at Eclipse for almost two years, perhaps it’s time I had another look - do you think it’s refactoring is up to the standard of IDEAs?

  3. Adrian about 5 hours later:

    Eclipse has obviously a lot of features copied after IDEA. However, a lot of work went into making these features more intuitive and friendly. For instance, I never felt the need of multiple autocompletion algorithms, even in projects with thousands of classes it works FAST [I have set it up to the equivalent of ‘smart autocompletion’ in IDEA]. Also for the record, for my last two corporate customers one was using Eclipse and even developed a few internal-use plugins - and the current one has a very small Java team running on IDEA EAP’s which I promptly switched to Eclipse - nobody complained, work is as smooth as ever. Yes, Eclipse has made a lot of progress in the last two years, and refactoring is great. However, if you’re into JSP stick to IDEA until the Webtools project matures a little bit.

  4. Sebastiano Pilla about 9 hours later:

    When I read:

    “Eclipse wins because IBM had time to sit back and think about how to present a coherent UI. It had time to think about what developers did and did not want to see. It noted carefully what developers do not want to think about. ”

    I think about my experience with Eclipse… It went like:

    1. install
    2. launch
    3. perspective ????????
    4. deinstall

  5. Magnus about 12 hours later:

    Just one comment to this: Sigh.

  6. No one about 13 hours later:

    Here’s my experience with IDEA:

    1. install IDEA
    2. launch
    3. Can’t create a web app without a non-supported plug-in that doesn’t work with Tomcat 5.
    4. deinstall
    5. install eclipse.
    6. Life is good.

    Sigh.

    I also don’t agree with Adrian. Why pay IDEA lots of money when you can buy myeclipse for $30? JSP editing, XML editing plus deploying into app servers - with debugging.

    IDEA is seeing the writing on the wall. They are on the way out of business. Giving it away to open source projects is their last hope. If that doesn’t generate sales, they are toast. I don’t believe it will generate sales. They have been fortunate because quite a few of their clients are outspoken and won’t switch, but those numbers are getting fewer and fewer.

  7. Lars Fischer about 13 hours later:

    Yeah, Eclipse is really impressing. Especially when using Linux:

    http://j2ux.blogspot.com/2005/02/eclipse-really-impressing.html

  8. Rob Abbe about 15 hours later:

    What you mean you can’t create a web app with out a plug-in? IDEA is great for web-apps. I use it with tomcat 5 without any problems.

  9. Anonymous Coward about 15 hours later:

    Hey, I can’t believe how one can code without a perspective …

  10. Aleksander Slominski about 15 hours later:

    I think there is place for many IDEs and including ones focused on coding/refactoring/gettign things working and not necessarily whole platform. If you have time try http://www.x-develop.com/ that supports JDK5 and C#2.0 in the same framework and has very good code analysis features (and typically does right thing for auto-completion …), works on Windows, Linux (with Java and Mono), OSX, and has soem toher niceties such as Back-in-time Java Debugger …

  11. Keith Lea about 15 hours later:

    It seems clear to me that you have learned how to develop in Eclipse, and you are now trying to apply the idioms (key bindings, intentions) that are specific to Eclipse, to IDEA. I’ve used Eclipse and IDEA and they require different mindsets for how you want to edit your code.

    I think if you tried IDEA for a week or two, for a serious project, you would like it much better. Why is Alt+Enter any better than Ctrl+Shift+V? There’s nothing inherently better about it, I don’t think, it’s just a different way of doing things. If you think it’s unintuitive, well, personally I think it’s silly to clutter the Alt+Enter menu with every possible action that you could take at the current cursor.

    I haven’t used Eclipse extensively, so I don’t know how its completion works. However, I can’t imagine not having 3 completion methods, for 3 completely different contexts. Would you really like Class Completion to be merged with regular completion? Would you really like every accessible class in the entire JDK to be in the completion list every time you press Ctrl+Space? There’s a certain time when you need class names completed (static method calls is the main one), and so for those times there’s a certain completion.

    I also like that Smart Type Completion is a separate completion. It only shows variables, method calls, and static factories which could be inserted at the cursor which match the type expected in the current expression. This is extremely useful because many times, I can type “List s = “, then Ctrl+Shift+Space, which inserts (the only match) the method in my class which returns List and takes an int argument, then Ctrl+Shift+Space again, which inserts (the only match again) the only int variable in the current method. This might not seem common, but I will very often not have to type a single letter of a variable or field name because of Ctrl+Shift+Space.

    You also say that you feel that more thought went into Eclipse’s UI design. I think that’s a funny thing to say, considering that I think Eclipse’s UI is way over complicated and poorly laid out (in terms of refactoring, where actions are located in menus, and so on). So, it’s again probably about what you’re used to.

    So anyway, I think you might end up loving IDEA as much as I do and as much as many users do. We’re not stupid, we’ve all tried Eclipse, we all make a conscious decision to use IDEA. There must be a reason, and I think if you use IDEA a little more, and try to work with its design, instead of fighting it (mentally), you might understand.

  12. Solar flare about 17 hours later:

    We’re not stupid, we’ve all tried IDEA, we all make a conscious decision to use Eclipse. There must be a reason, and I think if you use Eclipse a little more, and try to work with its design, instead of fighting it (mentally), you might understand.

  13. Rafael Alvarez about 18 hours later:

    I cannot help but laught at this Trolling fest of an article.

    I just have to ask: What is it in IDEA that was Eclipse Inspired?

  14. Keith Lea about 21 hours later:

    Thank you Solar Flare, for clarifying my point. It’s all about what you’re used to, and what style of developer you’ve become. (However, I doubt that most Eclipse users have tried IDEA.)

  15. Will Sargent about 22 hours later:

    De gustibus non est disputandum and all that, but what is it that IDEA does better than Eclipse? Seriously.

  16. Charlie Hayes 1 day later:

    I am also an IDEA user. I have tried 3 seperate times to use Eclipse, each time uninstalling and going back to IDEA. I give Eclipse a strong try every time. At least each new time I try it I find the download link a little faster. 30 min, then 10, then 5.

    I am going to have to agree that the Eclipse GUI is a lot worse than IDEA. There are just so many options regarding where things are put and perspectives and all that thats completely unrelated to editing code. Idea may be less flexable, but it doesnt get in the way and piss me off like Eclipse does.

    The only thing I like about Eclipse are the icons since I use Windows Classic. IDEA fits in more with Luna or whatever.

    Every time I use IDEA I am filled with joy when it does exactly what I want in 1 keystroke. Its nice to be surprised when what would normally take a miniut or two to complete is automaticly done in one second. IDEA is so clean and perfect, It is esssentially free with the EAPs, how can any one prefer Eclipse?

  17. Kevin 1 day later:

    I started reading the original post and thought this guy read my mind. I too am struggling to be near as productive in IDEA as I am in Eclipse. The last post, about the GUI all messed up in Eclipse, I think you have it wrong. I start off in IDEA and there is WAY more clunk than Eclipse. I don’t know if IDEA has something like the Eclipse perspective, but perspectives are very simple. They group a bunch of “views” (windows such as editor, navigator, console, etc) into a group and retains their positions. That is all. A debug perspective may open the debug window, the watch window and so forth. Switch back to the Java perspective and you have all the windows you like to use in their positions. Simple as that.

    IBM’s GUI is very often being copied too. Not only because thier Eclipse RCP application is taking off and tons of developers are starting to build mainstream applications with it, but it’s a bit refreshing from the usual windows look.

    And anyone who argues about look and feel… when’s the last time you saw Windows use it consistently in their own OS? Many others don’t do it either… so why this big hoopla over an exact look and feel for each OS I dont get. I’d MUCH rather my application look the same on ALL platforms so I only have to support one look and feel, write one documentation set (for each language) and so forth, as opposed to the often confusing (On apple, do this, on linux do this, on windows do this) syntax many have taken on.

  18. Magnus 1 day later:

    Once more, sigh. IDEA has some strong points. Eclipse has some strong points. Check both out and find what fits your mindset the better if you’re about to make a choice.

    I do agree with Keith though, that it seems the author have tried to apply the Eclipse mindset to IDEA, failed, wrote this and added a flamefriendly headline to draw a little attention. Which seems to have worked just fine, since the trolling factor right now is much higher than in any Rolf Trollerud thread at TSS that you could imagine.

    I did the reverse, used to IDEA trying to get Eclipse to do my bidding, which caused me to uninstall Eclipse every attempt I did. Why did I even evaluate Eclipse? To keep myself updated and because of many promising plugins for Eclipse. Free or 500$ to a company means (quite often) nothing; if your developers are productive or not are far more important. There’s nothing wrong with Eclipse in general because I chose to uninstall it, it’s just different than IDEA, which fits me better.

    Moving along…

  19. Glen Stampoultzis 1 day later:

    It’s funny… people seem to have the mentality that if you like one thing that the other has to be put in a bad light. Honestly… choose what you like and go with it.

    Sometimes it’s more about what you know than what is best. In my current job we pair program so I’m constantly swapping between Eclipse and Idea. I’m personally more comfortable with Idea but when it comes down to it they’re still both reasonable IDE’s. Just because I prefer one doesn’t make the other terrible. Just get over it already.

  20. kamen 1 day later:

    probably most of the discussion is that one has used the tool so much that they can’t the other ones strong points, in my case as an Idea user I like the simplicity of the IDE.. I don’t need 3 or 4 windows to just try to debug an application i don’t need like 8-10 windows open in different perspectives to be able to code.. remember you can code just with a text editor, eclipse gives you many options but at the same time too much is too confussing

  21. Kirk 1 day later:

    ahh IDE wars… well I must say that I’ve used every IDE that you’ve heard of a probably a few that you havn’t. Should any of that make you care about what I’m about to say….. nope… but I’m going to say it anyways….

    Eclipse has a history that goes back to VisualAge for Smalltalk. I wasn’t a fan of that interface and I’m certianly not a fan of the Eclipse interface also. But the reasons for this are mine alone as in the end it comes down to personal preference.

    So, I’m glad that Eclipse works for you but that doesn’t make it a great product nor does it make IntelliJ a bad one.

  22. Mariano 1 day later:

    “but about as useful to my everyday job as that two week vacation I wasted learning Ruby.”
    I was thinking about giving Ruby a shot myself. Why was it a waste of time for you? Did you try Groovy?

  23. Keith Lea 2 days later:

    Will, I tried to e-mail you but I don’t think it’s working. I got a response that said:

    451 4.4.1 reply: read error from mail.tersesystems.com.
    <wsargent@tersesystems.com>… Deferred: Connection reset by mail.tersesystems.com.
    Warning: message still undelivered after 4 hours
    Will keep trying until message is 5 days old

  24. Eniton 5 days later:

    IMHO, you know nothing about IDEA

  25. Aldwin 15 days later:

    I’ve been using Intellij for about 2 years now (previously a netbeans user, and before that forte). I’ve been trying to get Eclipse to work for me but, i guess i just can’t figure out everythng. I have a friend who uses eclipse, but can’t figure intellij out. I think, an IDE really just depends on the user. Whether the feature set and the UI actually goes together with how that person develops code.

    For me what turned me away from eclipse, was when i was trying to develop an application that was using ATG Dynamo modules. I have the code in place, so i just needed to import it. For intellij it’s as simple as creating a new web project,point it to the war file, and everything works, even code completion for the attributes of DSP Tags. for eclipse, i had to go through all the hassle of looking for the plugins, then looking for the dependencies of the plugins and configurnig them, in the end, I still couldn’t get DSP tag code completion to work (it migh just be me though). for intellij, it just works…

  26. Will Sargent 16 days later:

    NitroX will give you most of that functionality, but not all of it. I agree that IntelliJ’s handling of JSP is far superior.

  27. Jason 19 days later:

    Over the past 6 months, I’ve used the following IDEs: IDEA, Eclipse, NetBeans, JBuilder, JDeveloper, XCode, and jEdit. Every single one has at least one feature that I love, and at least one that I HATE. I’m currently about 2 weeks into my IDEA trial, and I may decide to buy it.

    Bottom line, as a few others have wisely pointed out, is to use what makes you happy and productive. Don’t limit yourself to one thing because you proclaim it to be the best; it surely is not. Every ide sucks in some way. And until one comes along that does exactly what you think, they will continue to suck in some way.

  28. Eyal 22 days later:

    The original (and amateur) author here complained that in IntelliJ
    Ctrl+N is for search but he has to “hit a checkbox” in order to search for non-java files.

    You dont use the mouse in IntelliJ !
    You press Alt+N for checking the checkbox!

  29. Will Sargent 24 days later:

    Eyal, I mention Alt-N in the next sentence.

  30. Leon Smith 26 days later:

    I have thirty years of cutting-edge type development experience, and I love what I see from you all. Yes, you need objectivity to not fall into the religious arguments, but you also need the passion that makes you commit to making your choice work for you.

    Check out: http://www-106.ibm.com/developerworks/library/os-ecnbeans/?ca=dgr-lnxw41NetBeans

    For a fairly objective look at things.

    I happen to LOVE Eclipse after years of use. I also liked VisualAge for Java, but not for Smalltalk, I used Digitalk’s IDE then.

    Make sure that you are evaluating on the correct set of criteria. Object oriented programming is NOT the easy manipulation of files on a file system. It is the creation of a universe of cohesive objects to solve a problem. Which IDE helps you do that the best ?

    Leon

  31. Will Sargent 27 days later:

    Your link points to Eclipse vs. Netbeans… if you mean Eclipse vs. IDEA, the link is here:

    http://www-128.ibm.com/developerworks/library/os-ecidea/

    I don’t know anything about Netbeans (or JDeveloper for that matter), but I haven’t seen half the amount of slackbrained idolatry of those products that I have of IDEA. Even Emacs and vi zealots have the good grace to admit that :q! and ^XC are not intuitive.

  32. adrian 3 months later:

    I SO agree with jason .. Why doesn’t anyone talk about JBuilder, which happens to be better than anything else at web projects ? Idea is more intuitive and easier than Eclipse, but Eclipse has the advantage of SWT. Why do people complain so much about stuff, instead of just using what they like best ?
    BECAUSE THEY’RE NERDS WITHOUT ANYTHING ELSE TO DO, LIKE A CHICK FOR INSTANCE

  33. Malcolm Sparks 3 months later:

    I’ve been using both IDEA and Eclipse for about a year each. I could write 3000 words on why IDEA is much nicer to work in. In summary, Eclipse/JDT is just plain awkward and buggy.

  34. John Broglio 5 months later:

    Experiences with the two IDE’s.
    1. Downloaded demo version of IDEA, spent a half hour applying it to an existing project. Selected the emacs bindings, added a few non-standard ones of my own. Tripled my work output in a couple weeks, so I had to buy it (previous IDES: emacs/jde, Jbuilder (mediocre), Symantic Cafe (horrible – every version)
    2. Downloaded Eclipse (3.1). Two of us spent the better part of two days getting it to work with an existing project, struggling with its cranky view of my world and its refusal to accommodate it in any way. Searched FAQ after FAQ to figure out how to tell it that Java 1.4 MEANS Java 1.4 – not some cleverly hidden random default mixture of 1.4, 1.2, 1.3, etc. Found out that if I have 13 jars in a library and one source zip, I apparently have to specify that one source zip 13 times over – once for each jar (I hope I am missing something there.)
    Notes: IDEA did not steal much if anything from JBuilder. JBuilder (through version 7) was awful. In informal tests with me using emacs/jde and my colleague using JBuilder, I could navigate his own code (references, usages, etc.) much faster in emacs with etags. JBuilder had nothing that an advanced Java developer would want (and it was a real dog). Current versions of JBuilder seem to be stealing from IDEA, but I don’t know if the performance is acceptable yet.
    Believe me, I want Eclipse to be good, I would like to use it, but it has the same “do it their way or else” feel that OpenOffice does. I want my IDE to accommodate itself to me, not the other way around – I am the human.
    Reading the original post, it was not clear which version of IDEA was being used. Many of the features the writer thought were missing existed from version 3 on. The rest exist in 4.5.

  35. Will Sargent 5 months later:

    John –

    I’m using IntelliJ 4.5. I used the product for two full weeks before coming to an opinion, noting my experience as I went. I looked through the manual and forums for each missing feature. As far as I can tell, I’m not missing anything. Please enlighten me.

    Will.

  36. Ramthes 6 months later:

    I’ve been coding in java for 5 years and I can tell that the first time I used JBuilder I had no problem because I think it is very intuitive, then tested IDEA and I realized that is a copy of JBuilder. Finally I installed Eclipse (decompressed in fact) I couldn’t believe how hard is to understand it for the first time, I think that Elcipse can have more features because of the plugins, but it’s the less intuivive IDE I have ever used!

  37. sammy 6 months later:

    I support IDEA, as it is NOT FREE with a reasonable price. Am I out of mind? Far from that.

    IDEA was an impressive product when it was first released. I’ve seen Eclipse copied feature after feature from IDEA and eventually killed the once innovate product. The brilliant boys in JetBrain are punished. Hobby developers are taking place from others who seriously take as their full time job.

    If this world is filled with open source projects which is for no charge, who needs software industry? Which party benefit from free software, you or your company? Open source developers are digging their own tomb everyday.

  38. Jason Greenfield 7 months later:

    INtelliJ copied Eclipse? You have that exactly backwards… Eclipse copied all their features from IntelliJ.

    I have used Eclipse for the past months. Eclipse sucks. I mean the platform and the tool. Eclipse commits the cardinal sin of making easy things hard. For instance, because of their wild and uncontrolled use of the reflection API to load classes, and the numerous, scattered places they use the FQN as a String in their numerous configuration files, as an ID field in the class you’re writing (as per their requirements) and WITHIN the Eclipse framework itself somewhere somehow, when the framework throws an exception it’s impossible to track down which FQN is wrong.

    Want to rename a file? Don’t think that their refactoring tool is going to update all the places the previous name of the file has been HARD CODED into the frameowrk. Furthermore, they have half a dozen different String variable names, i.e. name, id, class etc etc, again scattered all over their completely opaque and very numerous config files each of which is set to the FQN by their wizards . Whichj of these values actually becomes a dependency point of the Eclipse framework and cannot be changed? Who knows?

    I can’t begin to describe the numerous, weird and completely bizzarre ways the IDE has screwed up; suffice it to say that we have thrown away literally hundreds of developer hours watching Eclipse 3.1 do things that no java compiler / editor should ever do.

    Even if it all worked, the RCP and overall model fo Eclipse is horrendously complicated. Try picking up the 700 page tome on Eclipse and thumbing through it. It almost reads like a parody of excessive software abstraction, and once you actually get inot the details of developing an RCP, forget it- the closer you get to implementation, the worse it becomes.

    Eclipse will fail b/c instead of being best of breed it’s trying to be everything to everyone. It’s trying to be a universal application, which means one thing- it universally sucks.

    Sorry you had trouble with IntelliJ. Maybe there are things you could do in Eclipse that you can’t do in IntelliJ. Beleive me, as an experienced IntelliJ user, the same is true 10fold in Eclipse. I can certify that search in 3.2 in Eclipse is just broken. You have to search the entire project to find references; the mechanism to search a user-defined subset just doesn’t work. It starts there and goes downhill- fast.

    IMHO IntelliJ is brilliant. It spees m dvelopment by 5x over other IDEs and of course incalcuably over a text editor. IntelliJ is very very reasonalby priced if you’re making any money at all from programming. Don’t get me wrong, I am not a shill for IntelliJ nor do I have it in for Eclipse. I bought all the books and went into it with a cmpletely open mind. The factgs on the ground are that Eclipse represents one of the worst pieces of software in recent memory and it will absolutely fail in its quest to be the development platform of choise.

  39. Eugene 8 months later:

    JBuilder does suck! It has SO many bugs in it that I can not even list them all here. Most severe:
    1. Intensive memory leak.
    2. Numerous bugs in famous dbSwing, like weird date corresponding to db null value - our team was forced to develope workarounds. You pay for the license and then you pay for wasted time.
    3. Query builders and etc build code 10k lines long - 90% is garbage.
    And etc, etc, etc….
    And they call it Enterprise product. I would say - junk.

  40. Peter 9 months later:

    Ranting is so easy !

    Anyway if you fail to see the benefits of having the different type of code completions you better stick to ranting and move away from programming.

  41. Hehehe 9 months later:

    Hey guys!! Mine is bigger than yours.
    Even my religion is better than yours.

  42. Anonymous 11 months later:

    I’m a big IntelliJ fan. Perhaps because my work purchased it for me, perhaps because I learned it first, and have never had the time to more than dabble in Eclipse.

    That said, I ran across this list because I was looking for work-arounds to some of the bugs that I’ve encountered in the latest version (5.02) of IntelliJ. They aren’t show-stoppers, but trying to find a work around is making me wonder if Eclipse could be better (grass is greener syndrome).

  43. Anonymous 11 months later:

    (continued). Several of the bugs I ran across didn’t exist in 4.5.4 version I had been using, I’m going to be switching back. Perhaps IntelliJ has gotten so complicated that they can’t make it better without making it worse.

  44. psycho developer 11 months later:

    I have used IntelliJ IDEA for 4 years.
    I have used IBM Eclipse for 3 years.
    I have used IBM Rational (previously WebSphere Application Developer) for a year.
    I have used JBuilder (I have tried, to be honest) for over a month.

    The choice of IDE is really a personal. Having said that, if I am asked to make a choice, I would go for IntelliJ IDEA for its features that make more sense to me and act as a catalyst to my work. I have been at least 5X more productive using it that I was using Eclipse.

    100 pages won’t be enough to list bugs in JBuilder. It is the worst of all IDEs among three.

    Plain Eclipse itself is not a great IDE. It has so limited featuresets that I decided to switch to IntelliJ IDEA. Eclipse’s JSP editor sucks big time.

    I enjoyed working with IntelliJ IDEA. I thought it as the best IDE until I came across IBM Rational. IDEA is best suited for any light application development purpose. For reasonably priced IDE, you would be asking too much for any extra features. Some like-minded (to IntelliJ IDEA lovers) developers contributed very useful features to IDEA in the form of plug-ins.

    IBM Rational is on the top of my list. It pretty much does what I possibly want to do in Java/J2EE world. Based on core Eclipse project and fully loaded with features, I am just enjoying it.

    The key-mapping difference between IBM Rational and IntelliJ IDEA is obvious as it should be. That’s what make them different in the first place. It may take a while for you to switch to another IDE once you get used to one. But one should not judge the IDE in the basis of key-mapping.

    It took me a while to learn IBM Rational but it is a part of my productive work-environment.

    I keep using IntelliJ IDEA for small/medium size projects. The JSP support in IBM Rational is still far behind that in IntelliJ IDEA. Yet there are features in IBM Rational which are not in IDEA and there are many of them in IDEA which are not in IBM Rational.

    So, whatever serves you better in your developing environment should be a choice to you. Having said that, another IDE not of your choice may not be no worse.

    I love IntelliJ IDEA, I love IBM Rational.
    For me - Eclipse is OK.
    I dislike JBuilder (convince me !).

    Cheers -

  45. psycho developer 11 months later:

    I have used IntelliJ IDEA for 4 years.
    I have used IBM Eclipse for 3 years.
    I have used IBM Rational (previously WebSphere Application Developer) for a year.
    I have used JBuilder (I have tried, to be honest) for over a month.

    The choice of IDE is really a personal. Having said that, if I am asked to make a choice, I would go for IntelliJ IDEA for its features that make more sense to me and act as a catalyst to my work. I have been at least 5X more productive using it that I was using Eclipse.

    100 pages won’t be enough to list bugs in JBuilder. It is the worst of all IDEs among three.

    Plain Eclipse itself is not a great IDE. It has so limited featuresets that I decided to switch to IntelliJ IDEA. Eclipse’s JSP editor sucks big time.

    I enjoyed working with IntelliJ IDEA. I thought it as the best IDE until I came across IBM Rational. IDEA is best suited for any light application development purpose. For reasonably priced IDE, you would be asking too much for any extra features. Some like-minded (to IntelliJ IDEA lovers) developers contributed very useful features to IDEA in the form of plug-ins.

    IBM Rational is on the top of my list. It pretty much does what I possibly want to do in Java/J2EE world. Based on core Eclipse project and fully loaded with features, I am just enjoying it.

    The key-mapping difference between IBM Rational and IntelliJ IDEA is obvious as it should be. That’s what make them different in the first place. It may take a while for you to switch to another IDE once you get used to one. But one should not judge the IDE in the basis of key-mapping.

    It took me a while to learn IBM Rational but it is a part of my productive work-environment.

    I keep using IntelliJ IDEA for small/medium size projects. The JSP support in IBM Rational is still far behind that in IntelliJ IDEA. Yet there are features in IBM Rational which are not in IDEA and there are many of them in IDEA which are not in IBM Rational.

    So, whatever serves you better in your developing environment should be a choice to you. Having said that, another IDE not of your choice may not be no worse.

    I love IntelliJ IDEA, I love IBM Rational.
    For me - Eclipse is OK.
    I dislike JBuilder (convince me !).

    Cheers -

  46. mzbarsk almost 3 years later:

    Doug McIlroy, the inventor of Unix pipes and one of the founders of the Unix tradition, summarized the philosophy as follows: “This is the Unix philosophy: Write programs that do one thing and do it well.

    Intellij follows that philosophy. It allows you to write code well. Eclipse tries to be everything at once and only slows you down between all the wizards, perspectives and unintuitive interface.

  47. Florian about 3 years later:

    I have used both IDEs for some years, for Java and J2EE projects (Eclipse up to Version 3.3 and Idea up to Version 7). I somehow dislike both, but I prefer IDEA.

    I have never understood the way Eclipse really works. It does a lot of caching and tends to get into inconsistent states which are really confusing. Sometimes, if Settings are messed up, it just shows one Error in a list, but in reallity no compile works at all.

    Code completion in Eclipse is much worse than in Idea - there is nothing like the smart completion option, and if the class does not compile (quite likely during coding), completion does not work at all.

    IDEA has a lot of flaws as well - no question. But it is way more consistent than Eclipse.

  48. chicago about 3 years later:

    Guys, i found this article while searching the web on how to :

    • run an application that contains intellij forms without intellij

    I can tell you one thing from my current experience with intellij : i hate it.

    And to add a really non-emotional argument to that : - explicitly compiling a project before starting it takes ages - eclipse has save on compile. - not being able to add jars from a context menu to the build path sucks (having to go through module->properties->etc.) - code import is just completely nonintuitive - i want to resolve all imports automatically at once and not every necessary import manually. - code completion the same - i don’t need three different ways to code complete (and don’t tell me that i should propably stay away from coding - i think the guy above that wrote that is a fully dogmatic idiot)

    There is only one thing i like about it : - the user interface designer, however - that one sucks in the same go - i now need to find out how to deploy an app without intellij. this just sucks.

  49. chicago about 3 years later:

    @Florian : “IDEA has a lot of flaws as well - no question. But it is way more consistent than Eclipse.”

    • Yeah, consistent in the flaws ;-)
  50. chicago about 3 years later:

    Another feature Intellij clearly misses: “Quick fix”. It’s just so convenient to immediately see in eclipse that, for example the KeyListener implemenation missed keyTyped(..), etc. and then to add it with a single click because the ide gives me the choice. This is really productivity boosting - and it’s not boosting when i actually have to know and keep track of it my own that i have to add that method.

  51. Jem over 3 years later:

    “Eclipse wins because IBM had time to sit back and think about how to present a coherent UI.”

    Are you serious? The Eclipse UI is retarded at best.

  52. Jens over 3 years later:

    I disagree with almost every sentence ;-)

    I am forced to use Eclipse for some tasks for almost 2 years now and still don’t use features like code completion or quick fix, because they are far inferiour to those implemented by IntelliJ Idea - in fact so much inferiour that I am faster typing things out.

  53. movk almost 4 years later:

    I prefer IDA over Eclipse. On larger projects it si more responsive, less crashes. But this is not the main reason. The main reason for me is that in Eclipse, you cannot separate source directory with project directory , if you want to use CVS/SVN (mounted folders do not work with CVS/SVN). You are forced to mix eclipse files with source files. This means you cannot easily share sources with non eclipse developers.

  54. Jojo over 4 years later:

    Does IDEA have the ability to search for Java artifacts other then a Regex match? Eclipse parses Java code and presents it in a DOM-like interface that can do reference matches by type, haven’t found any such comparable in IDEA.

    IDEA, like emacs, promotes carpal tunnel syndrome through it’s finger-twisting key bindings. Each startup requires a lengthy file parsing operation. It has too many dialog boxes for common operations. OTOH, it does do a better job then Eclipse of handling implementation lookups ( Eclipse goes for the interface every time, leading to an extra subclass search. )

    I don’t think IDEA is worth the extra money. Eclipse has a snappier response, and the new features and plugins keep rolling in. Does IDEA have tools that use the new Java performance monitoring API yet?

    Every IDEA partisan I’ve ever met was a Java geek, not a software engineer.

  55. qwerty over 4 years later:

    I have used both of them for years, and my experience is that Idea is better. Eclipse has many features that you simply don’t need in Idea, because there are simpler, faster ways to achieve the same result. However, some of the points raised here are valid, and the Idea developers should really think about them.

  56. Harvey almost 5 years later:

    IDEA is meant for Java geeks. Eclipse is for software engineers.

  57. vi about 5 years later:

    IDE sucks guys! wake up .. vi and notepad are the champion !

Comments