January 18, 2007

Eclipse is a dead system

dead_fish.jpg

(DON'T PANIC! I probably don't mean what you think I mean.)

On a long enough timeline, the survival rate for everyone drops to zero.

Steve Yegge has a thought-provoking essay on living systems vs. dead systems, in essence: systems that can be modified at runtime vs. systems that you have to stop (kill) first to modify.

In this context Eclipse is a "dead system" (or "hardware" as Stevey says). And this makes me sad :(

In fact, it's saddened me for a while, though I've never framed the issue in these terms.

Even though Eclipse has a world-class extension system, we have to go through an onerous process of launching and relaunching Eclipse instances to make the slightest change to a plugin.

In contrast, a "living" system like Emacs doesn't have this problem. In Emacs we can evaluate s-expression, set variables, rewrite functions, and swap code on the fly without having to relaunch - which is why writing Emacs extensions is an order of magnitude easier (and more fun) than writing Eclipse extensions.

Stevey also draws a parallel between how long a system can stay running without reboot, and how long people will continue to use the system.

*shrug*

I think it has more to do with how close your system gets to hitting the best solutions to the problems people are trying to solve on any given day. But here's the thing: the problems of today aren't necessarily the problems of tomorrow, nor the problems of ten years from now.

The more malleable your system is, the better its chance of solving the problems of 2007, and 2008, and 2017, and 2027. And as it happens, systems that can be modified without a reboot are much easier to modify and far more malleable than systems that can't.

Eclipse has many advantages over Emacs (mostly in terms of gooeyness), but as ugly as Emacs looks on the outside, it's definitely the more malleable of the two. So, if I had to choose pick which one is more likely to be around in 100 years, my money would be on Emacs. And if history is any guide, that's probably not a bad bet.

UPDATE:

Hehe, as Bill points out in the comments, I do feel like kind of a bastard for writing this post (especially the inflammatory title). But my aim isn't to disparage Eclipse. I love Eclipse. It's a great platform, and it's very good at what it does.

And no... it's certainly not "dying" :)

My aim is to point out that there are other kinds of extensibility out there that we don't typically get with Eclipse... at least not right now, and it's the kind of extensibility I'd very much like to see.

And just for full disclosure, I work for the company that originally founded the Eclipse project. All views expressed here are my own and not those of my employer.

In Technology and Software

Posted by Josh Staiger at 06:05 PM