So I’ve been using Eclipse at work lately. I’ve grown to like some of the advanced code editing features. Being able to search for all uses of an identifier, without getting confused by different identifiers with the same name (as grep would find), is particularly useful for navigating code. The semi-automated refactoring tools can also be pretty handy.

It’s a shame that basic text editing features and the IDE’s stability suck so badly.

Now, my text editor of choice is, naturally, Vim. Its command set is so ingrained in my head that I find I instintively want to type :w after typing a big block of text. But the non-vi-ness of Eclipse’s text editing isn’t what I’m complaining about (although I certainly wouldn’t complain if it did have a vi-like mode).

For one thing, Eclipse’s built-in text editor is awfully sluggish. I suppose that’s to be expected, considering how it’s written in Java and everything. There’s enough of a delay when typing text that I can literally see the three steps taken whenever I type a character: the character appears, then the cursor advances past the new character, and finally the new character is syntax-highlighted. Certainly annoying, and if that were my only complaint, I could put up with it. (We’re not talking a delay of seconds, but just enough to be noticeable.)

Remember those advanced, high-level editing features I mentioned in the intro? Most of them are accessed through menus, which means you reach for the mouse quite a bit when moving through and manipulating code. (Again, it goes against my vi nature, but I can deal with it.) A lot of the operations I do involve highlighting text, doing some menu action that manipulates it, and then moving the resulting text elsewhere. Since I have my hand on the mouse, the natural thing to do would be to just drag the text to its new location, right? You can’t do that in Eclipse; as a result, I need to shuffle between the mouse and keyboard to do what I want. Not fun.

Working with the editing windows themselves is also aggravating. By default, there’s one editor pane, with tabs at the top for each open file. If you want to see two files at once, you need to drag one of the tabs to the bottom of the pane, which creates a new editor pane below the current one. Problem is, Eclipse only seems to notice that you’re doing this drag-and-drop operation about one-third of the time. Otherwise, it’s blissfully unaware of what you’re trying to do. So, if you want to see two files at once, it usually takes a couple of tries to get it to work. I haven’t figured out what the key difference is — it doesn’t work if I do it quickly, but it also doesn’t if I do it slowly. Weird. And annoying.

Also, if you want to open a new file in a particular pane, the obvious thing to do would be to drag it from the browser pane into the editor pane you want to see it in, right? Sorry, Eclipse doesn’t do that. You have to double-click the file, and it’ll open in the top pane. If you want it in the bottom pane, you get to do the fun drag-and-pray operation.

And if you want a split-pane view of a single file to see two sections at once? Tough luck, pal.

You might think its CVS support is useful. Unless your CVS repository is on the local file system. There’s no way to get Eclipse to just run the cvs command, oh no. Eclipse has its own (painfully slow, I imagine) CVS implementation in Java, and guess what, it only knows how to communicate with CVS servers. The simplest possible CVS configuration you can imagine, and Eclipse is clueless. So much for CVS support.

But the worst thing about Eclipse is how ridiculously fragile it is. It seems as though all you have to do is look at it funny and its internal state will get corrupted. When that happens, you get really weird behavior. For example, it might completely forget how to run the program you’ve been editing. As in, it completely forgets what this whole “Java” thing is entirely. Closing and restarting doesn’t work — it’s helpful enough to save this corrupted state to disk. If you’re lucky, this tool might fix things. If it doesn’t, you get to delete your workspace and create another one. Hope you didn’t configure any settings, because those are going bye-bye.

One great sure-fire way to get Eclipse to corrupt its state is to accidentally start a new instance of Eclipse while one is already running. Works every time. (And of course, by “works,” I mean, “stops both copies from working.”) But it also seems quite capable of corrupting its state without any help from you, for no apparent reason.

Long story short, I’m grudgingly using Eclipse at work since that’s what the other people developing the code are using, and like I said, the advanced features are kind of nifty. But I don’t think I’ll be putting it on my home system anytime soon.

Comments are closed.