Skip to content

The burning smell of fail that is the Eclipse 3.4 software updater

The other day I realised that on the Eclipse installation on my Mac I didn’t have any Subversion ‘team provider’ plugins installed. Most people who use the Eclipse platform with Subversion will realise that there are two Subversion plugins available for it – Subversive and Subclipse. It appears that the Subversive plugin is now the ‘official’ plugin, for various reasons I installed Subclipse because I’ve used it before and I’m comfortable with it.

That’s not what I’m writing about here. In order to install any team provider plugin, I have to use the Eclipse p2 updater software. The problem – the real, major problem I have with Eclipse is the updater software.

Caveat: I’m informed the updater is a lot better in the recent M7 release of Eclipse 3.5. My discussion below is regarding the version in 3.4, which I currently use.

Every time I go near the Eclipse update manager it gives me the heebie-jeebies. Yes, I know I should file bugs reports or write a patch, or contribute something, but … I don’t have an answer, but I do know the thing never fails to drive me totally crazy! It is, simply, the most infuriating feature in any piece of software I ever use, and that includes Microsoft, and Apple, products. It is partially the fault of the people who build the update sites (authors of the plugins themselves, typically), not just the authors of the feature. But the authors of the feature allowed this situation to develop. How should this work?

In a nutshell, the Eclipse should take take some ideas from how Ubuntu – or practically any other main-line Linux distro – does it with their X-window layer on top of ‘apt-get’ (for Debian-based systems) or even, ‘yum’ for rpm-based systems like Centos. On the command-line installing a new piece of software is like this;

$ sudo apt-get install the-package-name

It is similarly easy, although different, on Centos, the other main Linux distro I’ve used in the last year. You may have to need to configure it afterward, of course. Depending what “it” is, but usually being a Unix/GNU piece of software without a preferences screen (or any screens at all), you’re editing some sort of configuration file. To me that’s a feature, naturally. Anyway that’s an entirely different issue to the actual package installation and management. Half the time you can even guess the-package-name and it will come out right, although sometimes you have to go searching for it – which is where the X-window GUI can help. Hardly any of this applies to the way Eclipse handles its updates, though.

The essential piece of this puzzle is that Ubuntu (to continue with my example) provides an official list of packages it supports bundled into a single updater site. In its ‘out-of-the-box’ state, ‘apt’ (the debian package manager), contacts this official site, which tells it where the package can be got from, and what its dependencies are. The worst thing I’ve ever had to do is add a new ‘unofficial’ update site (e.g. universe) to apt’s configuration. There are a handful of these well known to the Ubuntu community. In fact the entry is usually in the apt configuration in the Ubuntu distribution, it’s just not enabled by default. You certainly do not have to add one-site-per-software-install, as you generally have to with Eclipse. And the updater can be used to explore what it possible to install, that you haven’t already got, another thing that the Eclipse software fails at.

Yes, this means the Ubuntu team controls strongly, the software that goes into it and how it’s configured. Eclipse really needs to learn this experience. Ubuntu never tells me “you need version 2.3.5.6.77789765 of other package X to install this package and I can only see version 2.3.5.6.7790020 so there is some problem” – the sort of problem I encounter frequently in Eclipse. Especially whenever I try to install any modelling packages with their many dependencies (I’ve given up trying and still draw my UML and other modelling on whiteboards and in Omnigraffle, probably where it belongs to be honest). In other words, the package providers have to provide a Callisto/Europa/Whatever-ready version of their install that will use the standard version 3.4 (or 3.3 or 3.5 or whatever) set of other dependencies. Currently, it seems the package providers can get to write whatever they like in their installation dependency information, and it leads to chaos if you try to use several different Eclipse plug-ins with similar dependencies and conflicting versioning.

Ubuntu does this each new distro e.g. 8.04, 8.10, which has a new repository (the version number is in the URL!) that has all the software playing nicely with all the other software. So if A and B both need C, both need the same version C, for a given version of the distro, else it’s not included in the official Ubuntu repository. Not only that, but even as time goes on, the Ubuntu people manage to keep all those dependencies synchronously sweet! It’s trivial for just about any dumb Ubuntu user to keep their distro up-to-date.

Seriously, Ubuntu beats the pants off Eclipse for update management, and I’d hazard a guess their problem is orders-of-magnitude bigger than Eclipse’s. Centralise, verify, and certify your update management, please Eclipse! Don’t make me add update sites and ensure that for a given version of Eclipse platform all the dependencies will inter-operate.

Update: My friend Miles Parker has some good things to say about it on his blog. I still disagree, though!

3 Comments

  1. Ben wrote:

    wow.

    You know you wouldn’t have had to write this wall of text if you’d been using a certain ide made by JetBrains — Imagine how much code you could have written instead.

    Isn’t that conclusive proof that Intellij makes you a more productive developer? :-)

    Sunday, March 29, 2009 at 09:36 | Permalink
  2. Scot Mcphee wrote:

    Yes, but then I wouldn’t *have* any plugins or other extensions worth mentioning … and I couldn’t install it with ‘apt-get’ either (on Ubuntu, try ‘sudo apt-get install eclipse’)!!!

    Sunday, March 29, 2009 at 09:45 | Permalink
  3. Joe wrote:

    Completely agreed. Eclipse plugin management is the worst steaming pile of %$%# that I have ever used. It really is a terrible piece of software.

    Somehow, people still hold up eclipse as good code, especially the plugin stuff. I just dont get it.

    Sunday, March 29, 2009 at 14:04 | Permalink