Why Do I Hate Eclipse?
As a consultant, I’m very often forced to use Eclipse as a development environment, and every time I do, it’s such a pain for me that I can’t help complaining about the poorness of this thing. And every time I do, most of my team mates, who have been brainwashed by the monopolistic propaganda of Eclipse, just keep asking me what’s wrong with it. And sometimes it’s hard to explain because it’s really a matter of user experience. And each time I find a specific example, I get answers like “yeah, but that’s just one thing”, or “I’ve never had that, you’re not lucky”, or “this is just because you’re not used to the Eclipse way of doing things”, or even the worst one “maybe yes, but it’s free!”. Since when is “free” a feature?
Right now, I’m reading the SpringSource dm Server getting started guide, and I was very surprised to read that SpringSource guys, who aren’t exactly stupid, and seem very experienced with Eclipse itself as they have based all their development tools on it (Spring IDE, STS, etc.), talk about what they call the “Eclipse Dance”. I didn’t know about the expression but I’ve definitely danced it more than once: every now and then, Eclipse views get all mixed up, some views indicate errors in a file, while other views on the same file say everything is OK. Or you get a message saying that it cannot find a class where you have the source in front of your eyes. Or like now, I have 2 maven projects at the same level referencing the same parent POM, and one of the projects says it can’t find the parent artifact, whether the other one seems to find it without problem. And when that kind of things happen, the only thing to do is to try a combination of closing all projects and reopening them, clean all projects to force a clean build, or even restart the whole Eclipse workbench. WTF?
How can SpringSource support such a poorly designed environment while admitting such unacceptable bugs? Oh yeah right! It’s free, so everybody uses it. This is really the perfect example of when Open Source can also kill innovation instead of fostering it. It’s free so everybody uses it, including corporate customers, so all tool vendors base their tools on it (Spring IDE, Flex Builder, Weblogic Portal Workshop, etc.), so even more people use it (even if they have better tools in their bag), and we’re screwed.
I would love that framework vendors focus first on command-line integration with tools like Maven and Ant, and then provide IDE integration for a few popular environments, including Eclipse, Netbeans, and my personal choice, IntelliJ IDEA. This would reinforce competition between IDE vendors instead of killing it while considerably lowering the barrier to entry to their frameworks. Right now, SpringSource is lucky I really need to understand more about dm Server, because if it had been only for cusriosity’s sake, I would have given up already just because of the tight integration with this crappy Eclipse thing and all the pain I have to make it work consistently.
So if you’ve already been in that situation, and you start to think there’s gotta be a better way, try out IntelliJ IDEA.
PS: I’m not related to Jetbrains in any way. I just happen to be a very happy customer of theirs, happy to pay a few hundred bucks every year to get their latest version, because as a Jetbrains guy said it last year at Devoxx, “IntelliJ iDEA is the only IDE worth paying for.”
This content is published under the Attribution-Noncommercial-Share Alike 3.0 Unported license.
Subscribe to the RSS feed and have all new posts delivered straight to you.

I think the biggest issue with Eclipse is the Maven integration. On our projects we had to just deactivate the Maven builder because we were experiencing Eclipse freezes of several minutes without knowing what was happening. It just killed all the productivity enhancements we were expecting after the mavenization of our custom build.
I haven’t tried yet IntelliJ with big Maven projects (more than 50 modules).
Hello Sébastien Arbogast,
I don’t often use Eclipse. I often use Netbeans for Java and PHP project development. I think your article is very useful for programmer in choosing a right IDE.
I will try to use IntelliJ as you recommended.
Thanks for useful article.
plus one from me!
Hi,
I think that you mixed some things…
M2Eclipse or Spring IDE don’t take part of Eclipse Mainstream Project. These projects are contributed by Apache and Spring, (I believe… but not sure).
Eclipse is a really good platform. And everyone can use it… and push the features they need and provide them without bug if they want(have time and experience).
An Eclipse lover.
I also had major issues with Eclipse, especially Maven based projects, the IDE kept freezing for 30 minutes, time to drink coffee, take a bath, etc.
The most outstanding issue that I had with Eclipse is when it crashed and then didn’t recognized my SVN settings. I was wondering if all my SVN hidden folders got wiped out or if it was just an Eclipse bug.
Eclipse is a powerful IDE, I don’t deny it, but it’s just too unstable. I do like plugins, but when I work I prefer to do it all by hand instead of wondering which plugin messed up.
I also recommend IntelliJ or NetBeans for professional development and Eclipse for job interviews preparations only (once you’re in you just ditch it).
I suppose Springsource like Eclipse because they focus on “common” in “lowest common denominator”. Others can’t get by “lowest”.
I don’t like Eclipse because it reminds me of all the programmers I’ve worked with who can’t code if you take eclipse away from them. One place I worked coupled their deployment process to Eclipse. Now that I think about it though, I’ve seen worse – at another place they deployed the JRE in the jar. I counted over twenty instances of the same version of the JRE on one server.
The problem I talked about with M2Eclipse or SpringIDE is merely an example. But the fact that such bugs occur in numerous plugins (Subversive and Subclipse have their problems too by the way) is a good hint: the common denominator is the platform. And I have worked with Eclipse RCP, behind the curtain, and that’s where the whole problem comes from: it’s incredibly complex,, there are so many ways to do one thing, and the platform wants to be so generic, it tries to do so many things that it’s very hard to make it do what you want correctly.
Your “time and experience” remark is excellent, I would add patience to the mix. And what if I don’t WANT to? What if I just don’t have time to go through the learning curve to learn JFace and Eclipse RCP just to fix a product. I know, I know, that’s what Open Source is all about, that’s the deal: I get it for free and I accept to cope with a few bugs. But all I wanted to say with this post is “if you don’t want to cope with the numerous bugs, there are alternatives”.
NetBeans is much better than Eclipse. Integration with Maven and Sping and it is FREE! :)
> NetBeans is much better than Eclipse.
But Oracle will not support 3 different IDE-frameworks (JDeveloper, Eclipse, NetBeans)
I think the best solution is to never mandate that developers use any one particular IDE.
Choosing an IDE is like choosing a spouse, there is no right/wrong/perfect choice. So mandating the use of a particular one is never going to make everyone happy, in fact, it will always leave a lot of people unhappy.
My projects were simple enough that we could store the core (source, config, libraries, etc) in SVN and then provide instructions on how to set up your project using the various popular IDEs. None of the IDE-config files were ever checked in. Since my projects were simpler, maybe this simply isn’t an option for everyone.
But if it isn’t, we should work to make it that way. Marriage of a project and an IDE has always gone badly every single time I’ve seen it happen.
Hey, it is refreshing to see an alternative opinion.
I do use Eclipse, after trying a bit NetBeans (haven’t tried it recently).
I use it at work: they can’t buy us some memory to go beyond 1GB, I don’t see them buying an IDE.
I use it at home: I just don’t have a budget to buy an IDE, even less an expensive one.
At work, it is problematic indeed, even more with our limited memory, even more if we ask it to compile our big project! (We usually use a command line Ant tool for this.) It is not unseen to wait to one minute or two just to display a tooltip I didn’t wanted actually… Auto-completion is a nightmare when you type fast, because it insists on getting a list of members when you already type the parameters…
Actually, I type most of my code in my fast, lightweight editor (SciTE) and switch to Eclipse for a quick check of the code (and auto-import feature) and debugging.
I experienced the bugs you mention above (still showing error in a corrected file, not finding classes in same package…) too.
Now, I am getting used to it (found it very confusing to learn, between projects, perspectives, views, workspaces, what’s not), and for some features it isn’t so bad… for a free software! ;-)
I don’t know all IDEs… But from my point of view, Eclipse is a really good IDE for Java editing. But of course you need a decent machine to use it. I see the problem of 1GB machine… It is a shame when 4GB cost less than 100$.
Okay eclipse has some problems, like workspace mess, and all. But it also offer really good features :
- instant find a class, ressource
- call hierachy
- refactoring, code generation
- quick assist, auto completion, error correction, auto import, auto format
- local and SVN history
- server integration
- powerfull debugger
- good and fast UI (on a modern computer).
- it’s a standard… Like stated above, most editor have an eclipse plugin.
- it support many file format in standard, like XML with completion using DTD/XSD
- come with a complete framework for many things you need for software engineering… MDA and all.
I understand that not all people have to use the same IDE, and maybe some IDE are better than eclipse. But for now it’s free, you can use it on any operating system, and it simply work.
Of course, eclipse is a very heavy software, and the open source thing implie that if you use a bad coded plugin by some hacker, it will not allways work as expected.
1. Please be specific: what version of Eclipse are you talking about? What plugins have you heavily used? Is this Windows/Mac/xyz Linux? Generalized stuff is really hard to zone in on. I say this because I haven’t seen the depth of issues you have. Although I have seen some, each new release of Eclipse is better, more stable, and has better features. What else can I ask for?
2. I heard maven mentioned in more than one comment. I was just listening to “Maven without pain” episode of javaposse.com, and wonder if your problems are linked to maven.
3. For just about any project I have started, the first thing I code is the build process. Even if I have only written “Hello world”, I want a command-line script that builds the whole app in place before I start slinging tons of code. I don’t need to be running down problems for the build team. Using Eclipse as your build environment is dumb, Dumb, and DUMB! I use ant build my jar files. I want CM team typing “ant” on a prompt, NOT having the option to click 10,000 buttons and get it wrong through an IDE. However, I’m curious to see how the new Eclipse+Groovy JDT will be possible for an ant build. (HINT: I ain’t about to break into using the IDE for build jobs!)
4. You do need resources. That’s for sure. I have a 10-year old laptop that does NOT have the memory nor CPU to run Eclipse. Well…I get by without. Just using gedit with a command shell is fine. Some days, a nice big IDE with code navigation and searching is nice. Other days, I crave my nice, UNIX-y shell lifestyle I used back in college. #1 reason I like Linux is the fact that I have both depending on what mood I’m in. :)
5. Bottom-line: use what you like. Can’t speak to consulting engagements, where you probably have to meet your clients on their level. Maybe your first step is introducing an ant build job, and making sure they have a centralized code repository. That way, if your cranking code, you commit, they update, and you are nicely decoupled from them, and the code becomes IDE-agnostic.
Eclipse is so fucking slow and is a memory pig. It is painful to use. It is counter intuitive.
generally ok with Eclipse as free versatile tool – but somethings just strike me as stupid, like now — it acts like it opens a file but won’t display it — you have to make a “project” first — can’t use it to just take a quick look at some unknown new file. And, it defers to windows preferences — i ask it to open a file, i want to see how Eclipse views it, and it stupidly invokes some other tool —
i’m sure there’s some “logic” behind these annoying behaviours, just seems like the mindset is “you have to formally set me (Eclipse) up as the tool for some filetype AND don’t bother me with ‘little’ stuff i only deal with formal official ‘projects’” — well la te da… rigid mindless formalism at the expense of simple utility
stupid