Eclipse Sucks.
Note the period at the end of the statement. It’s final. It’s official (in my little world) and I’m not going back on the statement. Eclipse does indeed suck.
Chalk up another IDE scoring above an 8.5 on my mental list o’ crappy things.
It’s not that I’m confused by the product, it’s not that I don’t see it’s “features” or “benefits”. It’s that the thing is an utter piece of crap. It gets in the way instead of helping me along the way. If you were using a air hammer that was guaranteed to soot a nail into your eyeball every seventh shot, you’d toss it out like last months rubberized cheesecake. It’s my conclusion that there is a large majority of people in this world who happily compromise comfort for usability, reliability, and actually knowing what the heck you’re doing. Instead of getting a manual hammer and driving every nail in a tried & true fashion with reliable, predicable results in a grand show of their craftsmanship and skill these people will happily shoot a nail gun into their eye socket while using a defective tool that “looks cooler” or promises better productivity through increased complexity. Whatever. Eclipse sucks.
I’ve been using text editors to handle my coding since the beginning of time. I’ve never enjoyed using “real IDEs”. The closest thing to a real IDE that I’ve used was BeIDE, and even then I use a terminal window & makefiles to build the projects, and bdb (a completely separate app) for source-level debugging (when necessary). In the last 5 years I’ve been working with java, I’ve used the outstanding programmers text editor (yes, that’s a _text_editor_) jEdit, ant as a build tool, and jdb to handle debugging when necessary.
Granted, the way I trick out jEdit with plugins it basically becomes like an IDE. I use AntFarm, which integrates the ant build scripts (and eliminates the need for a separate terminal window), the file-system browser to open files, and JBrowse for class parsing (occasionally). So why do I like jEdit better than Eclipse? It lets me decide where I want things.
Eclipse blows a lot of smoke up peoples posteriors. With promises like refactoring, integrated debugging, perspective views, etc. Great. Whoop di do. Guess what? People who actually know how to code don’t care. Lazy putzes who can’t figure out what impact a change will have to an object model (and therefore probably shouldn’t be modifying the object model) will. Just because they can use an air hammer doesn’t mean they’re a master craftsman capable of building square functional cabinets that are also appealing to the eye.
Let me outline just a few of my (many, many) gripes about Eclipse. Note that I’ll be providing screenshots of WSAD 5.1, which is based on Eclipse 2.x. I’ve been using (forcibly) Eclipse 3.x on my iBook for about 3 weeks as well. So I have some context about what’s changed.
Complaint #1: The keyboard shortcuts are horrendous. Ctrl-F for find makes good sense. But what does “K” have to do with find again? Most programs use “G” because it’s directly beside “F” on a QWERTY keyboard. There’s no shortcut for “shift left” and “shift right”, something I personally do a lot of. I’m constantly removing idiotic branches and reworking exception handling written by idiots who obviously love IDEs that try to code for them.
Complaint #2: Suggestive typing and auto-insert. My single biggest pet peeve of all times. The addition of “pop-up function lists” and other such crap is equivalent of giving a 3rd grader a calculator and wondering why they never learn to do mental math. It makes you stop thinking. You (easily) forget the objects you’re working with, hides complexity, and nurtures a total apathy of clean design. Ever see a really stupid object model? I’d be willing to bet it was designed by someone who likes these freakin’ pop-ups telling them what to type. In my mind they’re distracting, slow down my natural typing speed, increase the number of typing errors, and absolutely suck for trying to learn a model you’re not familiar with.
Complaint #3: Auto-indenting & symbol markup. Just because I type a ‘(’ doesn’t mean I want you to automatically put a ‘)’ after my cursor. I hate you Eclipse. Same goes for ‘{’, ‘[’ and ‘"’. Stop trying to think for me, there’s a reason I went to school and read books about the language syntax. Thank you, but I’m not an idiot.
Complaint #4: Default (and in some cases immobile) placement of controls and data is horrible. Let me illustrate.

I’ve circled the worst offenders in red, and drawn arrows to where I think they should be.
Let’s start with the document tabs. I move mine to the bottom of the window by default. Always. No matter what program I’m in, if it’s got tabs that I can relocate, they get relocated. Why? Nine times out of ten when I need to switch the tab, I need to scroll as well. Not to mention, it’s a lot easier / faster to grab the mouse and yank -down- and hit a target toward the bottom left of the screen than it is grab the mouse and hit a target somewhere near (but below the window title, menu, tool bars, etc) the top.
That Console pane should be something that can quickly be hidden and then shown, rather than closed or open all the time. Every IDE I’ve ever used has this annoying tendency to require all the panes to be attached and visible in their place forevermore amen. Eclipse tries to get away from this with their “perspective” view crap, but it’s just that. Crap. What you end up with is a boatload of different panes that results in your workspace being constantly divided up and rehashed every time you switch “perspectives”. Not to mention you can’t set a default layout like, “all new panes should be attached here.” They all default to the _left_ side of the screen, which takes me to my next problem…
I’m writing software. The source code is the most important thing on the screen. So why is it getting second class status by default?! We’re taught to read left to right, top to bottom in most languages in the world. The upper left corner of your screen or any window is the most important. That’s where your eyes will start scanning for information. If I’m hacking source code, then why isn’t it in the upper left side of the screen?! Who is the crack money moron that thinks the source tree, file system, server state, or any of these other “perspective” things is more important than the code I’m getting paid to write? Perspectives don’t put food on my table. Code does. Reflect that in your layout, putz.
The biggest layout gripe I have is this: Once I do get all these blasted perspective panes put in the right place, I can’t move this blasted “shortcut bar”. Yes, the pun was intended. This ShortCut bar isn’t a shortcut it’s a nightmare. I want to click in the text area to activate it. I can’t just ram my mouse to the side of the screen. NOoooo I have to ram it to the side, then back up. What the heck is this?! Why is every other object on this screen able to be moved except this one?! Who’s the bloody freakin’ moron that made that hair-brained decision?!
The syntax coloring isn’t just bad. On 2.x it’s outright sub-standard. Thankfully, this can be addressed. Some young genius hacked the jEdit coloring model (complete with xml descriptors for syntax coloring various languages) into an Eclipse plug-in. This can restore some sanity. Eclipse by default (at least in 2.x) couldn’t differentiate between differing levels of keyword importance, operators, numbers, etc. It sucks. Horribly.
Even DOS editors (TurboPascal anyone?) had more levels of syntax coloring than this. Gah.
This is about the best I can do, and it’s still horrible to use. Mainly because it sucks something awful. The search / replace functionality sucks as well. There’s -zero- support for regular expressions! What kind of programming editor doesn’t support regex? For craps sake. Someone beat some sense into these morons. No wonder they put such an emphasis on “Refactoring” support and plug-ins. The basic functionality of their text editing components is more crippled than Tiny Tim in A Christmas Carol, and less sane than Michael Jackson at a Make a Wish Foundation fund-raiser.


August 18th, 2005 at 4:20 pm
I think Eclipse sucks. I disagree with your complaint #2. I think the popups greatly improve API design. I constantly have in mind what my API users are going to see when they type a ., and I try to keep the public methods on my classes to a minimum and give them names that are clear and distinct from other method names. My goal is that most people could use my API without any documentation at all, only an IDE showing method and parameter names, and return types.
You say Eclipse treats code as second class. I agree. This is a large reason why I prefer IntelliJ IDEA over Eclipse - for me it seems IDEA is 95% about coding and 5% about UI and compiling and that stuff.
August 18th, 2005 at 4:40 pm
Point noted. I guess my problem with popup function completion is that it’s slow, often not getting to the things I want soon enough, and that the only products I actually used it in (because it was actually fast enough not to interfere) was in VisualStudio with the horrid MFC & VisualBasic 6 stuff.
I disabled it in Eclipse. It was taking forever to parse things, and messing up my typing.
As for IDEA, I’ve never heard anything bad about it. I hadn’t heard anything bad about Eclipse either, but then again, after looking at who was recommending it… Anyhow… I’ll be sticking with text editors whenever possible.
August 18th, 2005 at 9:07 pm
I’ll third the fact that Eclipse sucks. However, I also agree that autocomplete is great. Some people just hit the dot key and go to the mouse and start scrolling around. Obviously thats not what your suposed to do. If you start typing to ’search’ for the method you need, its a lot fastar than going into some class tree or looking at the code.
What’s funny is I too have been using that horrable WSAD abomination at work. I thought “this is actually a lot better than what I remember eclipse being”. So I downloaded the newest version and played around. My gosh its bad. I really like how snappy it is and how fast everything runs in SWT. I also like the icons it uses. But everything else about it seems like such a “oh, this sounds cool” feature.
I think the reason it may have been slow for you (the popup menus) is that it was on some sort of delay.
I think its really funny when people who normally use something like notepad try Eclipse and think its amazing. Eclipse is garbage.
August 19th, 2005 at 1:47 am
Ok, I’m curious, Bryan: how slow was it in response time, and can you give me an idea of the number of items it had to deal with for class members/etc and so on? Sounds like a DontWorry performance issue to me, which is something I aim to avoid.
August 19th, 2005 at 10:08 am
Why not go back to jEdit?
It’s pretty much become my editor of choice this summer. I use it for Python, and HTML, but it’s nice to be able to open just about any file with syntax highlighting. I’ve used it with nsi files, c++, java, etc. It makes it easy to view anything, and I can customize just about everything about it. I’ve got an IRC plugin so I can even talk to people while coding.
I even have a picture of a goofy looking spiderman as the background to my text.
Take a look:
http://zmcgrew.no-ip.com/imgs/screens/jEdit.png
August 19th, 2005 at 11:22 am
Some days, brother… reading your rants can be sort of like watching a train wreck.
While I’ll concede that I prefer jEdit for any language I’m really comfortable in, I disagree with your level of animosity (surprise, surprise :-P) towards eclipse.
Complaint #2 rebuttal:
Programming requires heavy use of short-term memory, which works an awful lot like voluntary memory: if you aren’t concentrating on it, it’s contents are lost. One can’t be expected to remember every method of every class in a large project (and anyone who does expect this, like the teachers who don’t allow you to keep a reference book handy, needs some real-world experience, b/c they’re missing the point). Switching from your editor to the javadoc risks forgetting whatever you’ve got in your head, as well as breaking your creative concentration. Once interuppted, knowledge workers take a minimum of 15 minutes to get back into “the zone”. Yes, you may still be hacking away at the keyboard, and you may still be somewhat productive, but you’ve just lost that mental state that’s so important to supreme craftsmanship.
Complaint #4 rebuttal:
Yes, we read from left to right. However, it’s not the eye’s natural tendency to shift up and to the left; rather, it starts right in front and follows whatever colors/line designs it’s presented with until it finds whatever it will center it’s attention on. From there, it tends to travel down and to the right in a spiral pattern. On top of that, what’s more comfortable: looking at the upper left of your monitor, or the center. I know you’ve spent at least as many hours in front of the keyboard as I have, and have the medical bills to prove it. The best posture for spending 8, 10, or 22 hours in front of a computer involves having your visual focus directly front-and-center in relation to your eyes. Your neck and eyes need to be relaxed and in their natural positions.
Eh, dunno why I risked debating with you. I’m not all gung-ho for eclipse, and it’s sure got its quirks. It must be b/c I was up at 5 today…
There’s some General Tso’s waiting for me, so that’s all for today :)
August 19th, 2005 at 12:35 pm
I’m forced to use eclipse, as it’s what the WebSphere Studio is based on. Th entire build / test / deploy system here is based on that, and it cannot be circumvented. Furthermore, due to the use of Rational ClearCase for version control, it makes dealing with other editors which aren’t integrated with ClearCase a chore.
I’m not a big fan of any of these tools, but I can see why some people are.
As for root, well… I can see your points, but I find the more time I spend looking things up in documentation, the better acquainted I become with the classes, and the less and less I -need- the popups. To the point where I don’t need them. Maybe it’s just me, but I’d rather commit spending time finding the answer (which I’m far more likely to remember) than have it shoved in myface so I can forget it in less than 24 seconds.
I could say with reasonable certainty that my productivity dosen’t suffer from this in the long run, and I know more about the object layout of my current project than some of the devs who’ve been here twice as long as I have. Is it because I’ve been doing more? No. It’s because I’ve been digging through and looking at things more indepth and examining the interactions a bit more throughly.
I guess my partly photographic memory may also help there too.
August 19th, 2005 at 12:45 pm
As for the speed issue with the ‘popup function’ piece of crap…
The project source tree I’m working in has 11,926 files. I’d wager ~200 of those aren’t class sources. Some source files have more than one (inner) class.
This is one eclipse “project” out of five, each of which is in my classpath and available for completion.
Further, it’s not the type-a-dot and then mouse. Only a moron would do that. The delay as it searches through things and makes inappropriate suggestions is what screws with my typing. This has been a problem with every IDE i’ve ever used that had this popup crap. Maybe it’s my fault that I type ~80-90 WPM on a good day, and ~65-70 on a bad one.
August 19th, 2005 at 1:55 pm
So, Bryan, for autocompletion functionality, seeing as you’re a fast typist and it seems you already know what the methods are called, I’m curious as to what you would prefer:
1. No autocompletion at all (the option to turn it off should *always* be present in my estimation: things don’t always work right, or for some reason, slow things down, even with the best intentions)
2. Autocompletion by a voluntary command key (ie press Control or Alt while typing period, for example)
3. Provide autocompletion suggestions that have the most likely prospect selected so typing over it blows it away, and no artificial time delay: if you keep on typing without pressing an “I accept” key (say, Control+Space) what you type overrides any suggestions and blows away anything it pops up, with it stopping autocompletion searches as soon as you’ve typed a character that indicates autocompletion is done (ie, typing a character that can’t be part of a valid identifier, such as a closing }, ] space, return key, etc.) with the autocompletion suggestion stuff running as a *background* thread, doing the searching while you’re typing, and only providing suggestions (because it can) when you’re typing at less-than-full speed for the system you’re working on, so if you know what you’re typing, it doesn’t slow you down, but if you need to question something, you can, and have maximum responsiveness.
4. No option 4 exists in what I’ve typed.
5. Can you or others fill in the blank here?
August 19th, 2005 at 3:37 pm
IDEA’s “smart-type” completion also allows you to think about your objects more in terms of types, and less in terms of method names. Many times I’m calling a method that I know takes SomeType, and I know I only have one variable of SomeType in my method, so I press Ctrl+Shift+Space and IDEA inserts the variable name for me (because it’s the only completion of the correct type). Similarly, many times I know that the method I want is the only one that returns the type of the variable I’m assigning, or the parameter I’m passing to, so Ctrl+Shift+Space is great here too.
I think modern IDE’s help you but they demand that you change how you program, to truly improve your productivity. I think it’s a positive thing and I think you should embrace it. I personally think text editors like jEdit are a thing of the past, they will gone in 10 years, and I don’t think I would enjoy programming even near as much as I do now, if I had to use a dumb text editor like jedit or emacs.
I think it’s great that you are productive with jedit, but I think it’s mostly because it’s what you’re used to, and you don’t want to change your programming habits (like I don’t want to change mine from the way I’ve learned to code in IDEA). I think if you open yourself up to the idea of programming with a different mindset and utilizing the modern programming tools instead of fighting them or trying to adapt them to an old programming style, you will eventually become more productive than you could ever be now with jedit.
August 19th, 2005 at 5:08 pm
I’m curious, how do you measure WPM while writing code? Do you honestly type 80 ‘words’ per minute while coding? I find it hard to type at a fast rate while writing code. All the crazy brackets, parens, and braces are all clustered away from your home row. I dont even type normally, my hand is usually floating around farther away than the home row, and it’s still hard to hit all those closure characters. I guess that’s part of why I like IDEA so much, it sticks at least half of those in for me. And unlike many other editors that also auto insert closing parens or whatever, IDEA is really smart about when you _do_ type a closing paren by not adding it again, but just moving the cursor over it.
It’s hard to imagine coding without simple refactorings such as rename or intensions such as “change return type” or “create class/method/variable”. When 2 keystrokes can insert entire method declarations with smart auto generation of parameters and parameter types, how can you compare that to typing out all 100 or so characters? And what about generating 10 getters and 10 setters with 5 keystrokes? And hash and equals methods? Constructors? You’re going to save so much typing! And then refactor things to change types, names and such and have all the changes filter down throughout your entire code base. It makes coding objects more object-oriented. I like treating my types as an object that I can change in one place and then it’s fixed all over.
I can’t imagine there are any editors on BeOS that can do all of this. That is unless you have some secret JVM that can run IDEA on BeOS. =)
I must admit I envy your ability to smash out code without an IDE like IDEA though.
August 19th, 2005 at 5:32 pm
No, I don’t think I could possibly type 80wpm while coding. The point is that my fingers move pretty quickly, and I generally have a pretty good idea of what I want to type when I’m going for members of a class.
I abhor “refactoring” tools, class wizzards, etc. Call me a purist, but programming is more than just pointing, clicking, and typing out a few things here and there. All these “shortcuts” and visual-editors take the art out of the trade.
I guess in some ways I feel like the auto-workers, textile mill employees, and iron workers of old. Increasingly there’s more and more unskilled people using “better tools” consisting of automation that come in and make substandard or marginalized software. The robots are taking our jobs — and their work just dosen’t have the same care or soul.
Brainless tools like Eclipse aren’t solving the problem of bad software, they’re prolonging it. Remove the marginal coders, the people who get by with point n’ click, and you’ll end up with the people who belong there. People who do this because it’s in their blood, not because they can afford a big house, a maid, and nice clothes.
I stayed at my last job as long as I did because I really liked what I was doing. I enjoy coding, it’s what I do, I’d be doing it weather I get paid or not. My last job didn’t pay well at all. Unlike so many others, my career choice wasn’t about money, or opportunity — it’s what I love to.
Luckily, I’m working with a group at my new job who feel the same, and are equally as dismayed, upset, and discouraged when we see the market flooded with inflated resumes for incompetant mouse-mokies.
August 19th, 2005 at 8:54 pm
I believe refactoring and smart editing is the next step, as syntax coloring and auto-indent were many years ago. I don’t think tools like Eclipse are solving the problem of bad software, but they are allowing for more complex software with a smaller amount of effort. Yes, this allows people to write good code and bad code. But I believe it doesn’t change how YOU or I write code - assuming you write good code, it allows you to write more complex, better designed good code, in a shorter amount of time.
I only in the past two months got a job programming - I’ve been programming since 8th grade for my own personal projects. I don’t like IDE’s because they let me make more money, I like them because they let me get what I want to do done, faster.
August 20th, 2005 at 4:53 am
Did you try this one:
http://www.bildung.hessen.de/abereich/inform/skii/material/java/editor.htm
This is a free Java Editor made by a german teacher. Not sure if it is available in english. Just to demonstrate that you get a similar eclipse design for free too.
Maybe you could mail the author of the german javaeditor-programme to check your considerations…
I am sure he will listen you… for free…
Go on cool work …
P.S.: So it will be for sure that there will be no Zeta Java support, but Java will be available for HAIKU and or BeOs R5?
August 20th, 2005 at 3:14 pm
Congrats on the job!
If an IDE is the right tool for you, then by all means use it. I’m not going to sit here and say no one should use Eclipse. I’m saying that in my opinion, it sucks.
:-D
I stayed in from recess in 3rd grade to write BASIC on an Apple ][. I feel your pain, and elation in getting a job doing what you like.
August 21st, 2005 at 4:24 pm
I don’t recall anyone ever saying Java won’t work on Zeta. It might…
According to an interview with Bernd at the last BeGeistert, they’re working on their own. Whatever that means.
July 4th, 2006 at 11:34 am
I have another reason to hate eclipse. “Building Workspace” takes several minutes to complete and blocks user operation. How ridiculous. Seriously considering switching back to VI, but with this code base I cannot live w/o “usage” searches. Does JEdit have that?