Tuesday, October 6, 2009

The Futility of Eclipse Based Development

I'm a fan of Eclipse when it comes to Java programming -- I've never had a bad experience with it. I'm sure this is due in no small part to the fact that Eclipse is written in Java, and was initially targeted for Java development. ACM Queue magazine (which I highly recommend), when it still did dead tree distribution, had a regular feature called "What's On Your Hard Drive?" In it developer's would briefly list and comment on the development tools they loved, and those they hated. Eclipse would show up on both lists. At the time I'd used Eclipse only for Java development, and had only positive experiences, and so couldn't understand how a developer could find Eclipse so onerous as to be a tool they hated. Heh, not so mysterious any more...

When it comes to utilizing an Eclipse plugin-based application for doing pretty much anything other than Java, I invariably find it monumentally frustrating and soul draining. I'm not exaggerating.

I've used Eclipse-based applications for XML, XSL, modeling, diagramming, report generation, etc. Eclipse is ridiculously brittle--getting a consistent installation of all the application's required plug-ins is so problematic that Eclipse distributions are provided as pre-built bundles so that you can at least have a fighting chance to just get something started. Upgrading to newer versions of plug-ins is a recipe for breakage, and Eclipse is nearly impenetrable when it comes to figuring the cause and fix of any non-trivial problem that arises.

Yet at exhibits you'll see these whiz bang demos of powerful, productivity-enhancing Eclipse plug-in and Rich Client Platform based applications. Makes you just want to go get them and start producing. There's so much power in that platform, and here you're seeing that power being harnessed right in front of your eyes, so what is the problem??

I read an article about "Wolfram Alpha and Hubristic User Interfaces" that concisely makes a point about the the "hubristic UI" of Wolfram Alpha, and that applies equally well to Eclipse:
The actual developers (a) have enormous experience with the hubristic UI, (b) have enormous patience with its flaws, and (c) most important, know how it actually works. So their internal model can be, and typically is, orders of magnitude better than that of any naive user. So the product actually seems to work for them, and does.

I'm not interested in becoming an Eclipse developer, or a plug-in developer. I'm looking for tools to help me do my job. Occasionally I'll still get seduced by the functionality of an Eclipse plug-in and think that may be this time it will be different, and it'll just work as advertised to the point that the platform "disappears" into the background and all I'll need to concern myself with is the task I'm trying to accomplish.

Still getting burned.

Every time.


Anonymous said...

So... emacs?

Marc said...

>So... emacs?

That's my "go to" editor.

I now use GPS for Ada programming, but most everything else is emacs.

dr said...

I totally agree. Eclipse's non-Java tools are pretty consistently crappy, brittle, and complicated. That includes the few that I've developed myself. It seems like the only people that really understand Eclipse development well enough to make a bullet-proof application are the JDT team. I'll probably keep foolishly trying though :)

Steve said...

The pydev plugin for Python works pretty well. For a great example of a hubristic UI see the amazing Blender program - great feature set, impossible UI.