There is a special place in heaven for those who make free-libre software engineering tools available to journeyman programmers like me. I’m grateful to the Eclipse project for their comprehensive integrated development environment. A few years ago, when I chose Eclipse as my Python-language programming environment, Eclipse wasn’t very easy to install, especially on the Mac. Into the gap rode the EasyEclipse project. They offered distributions of Eclipse and related modules, targeted at various kinds of developer and at various language preferences, in packaging that was simple and ready to go. I used their EasyEclipse for Python 1.3.1 product as my primary development environment for several years, and it was great for me.
Alas, the EasyEclipse project appears to be stagnating. They haven’t updated their builds to the latest version of Eclipse and language-specific plug-ins. (They still use Eclipse 3.3, current is 3.7.) Their Eclipse build is throwing errors in the Software Update feature, because the latest plugins are too new for their old Eclipse core. They aren’t responding to bug reports and forum posts. They aren’t even responding to my message sent in response to their plea for helpers to take over the project.
In the meantime, the Eclipse project’s distributions are now easier to use. You can download Eclipse builds for Mac OS. They have builds targeted to various segments of developers. They have extensive documentation. They have a update manager within Eclipse, to make it easier to stay current.
So, the question is: is the core Eclipse project now easy enough to install that there’s no more need for a project like EasyEclipse? Is Eclipse.org easy enough to eclipse EasyEclipse.org? If not, can the core Eclipse project learn lessons from EasyEclipse and become easy enough? Or is there a niche for the EasyEclipse long-term? I recently downloaded a current Eclipse build, and fitted it out for Python and PHP programming. My experience gives me opinions on these questions.
First, the Eclipse project deserves a lot of credit for making their code much easier to access. Their downloads page offers pre-built binaries, for the major platforms: Mac OS, Windows, and Linux, all in 32-bit and 64-bit versions. Just like the EasyEclipse project, they offer a variety of packages of Eclipse and language-specific tools which cater to various segments of the developer market. They have an in-app “Install new software” tool, and an Eclipse marketplace. These are very nice, and big improvements from where the project was a few years ago.
However, in my experience trying to recreate my EasyEclipse for Python with Eclipse project resources, I ran into a number of stumbling blocks. Here are a few of them.
As nice as it is to have 12 Eclipse packages, none addressed my desires: Python language programming, and PHP programming with XDebug. By contrast, EasyEclipse offered EasyEclipse for Python, EasyEclipse for PHP, and plug-ins to add PHP and XDebug support to my EasyEclipse for Python.
It’s great to have an Install New Software… feature in Eclipse. And it’s great to have an Eclipse Marketplace, where one can look for plug-ins to support whatever one desires: Python programming, PHP debugging, and more. But it’s confusing to have these mechanisms be separate. They should be integrated.
The Eclipse Marketplace is hosted on a website. But there is a snazzy Eclipse-resident client for the marketplace, the Marketplace Client. Great! The client comes pre-installed on all 12 of the Eclipse packages — except one. Guess which package I happened to pick as my starting point. Sigh. The Marketplace Client is a big ease-of-use boost. It should come pre-installed with all the Eclipse packages.
The Eclipse Marketplace entries feature a little “drag to install” icon. Drag this icon to your running Eclipse workspace, and magic should happen, resulting in the plug-in described in the marketplace entry being installed in your copy of Eclipse. The snag: the magic thing you drag (which is a specially structured URL like http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=1147) only works if the Marketplace Client is the target of the drag. Drag this magic to the Install New Software… window, and you get an error alert entitled org.eclipse.equinox.p2.core.ProvisionException, with this edifying little error message:
Unable to read repository at http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=1147. Unable to read repository at http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=1147. http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=1147 is not a valid repository location.
Charming. Firstly, the Install New Software… window should be able to handle these magic URLs from the Eclipse Marketplace. Secondly, even if it can’t perform the install, it should at least recognise the special URL and give a sensible error message, like “You need to drag this onto the Marketplace Client instead, sorry”.
The good news about the Eclipse Marketplace is that it’s overflowing with offerings. The bad news is that it’s overflowing with the wrong offerings for any given user and purpose. A subtle benefit of the EasyEclipse project was their selection of trustworthy, compatible groupings of plug-ins which were appropriate for certain segments of developer. The Eclipse project doesn’t really provide this: the Eclipse Marketplace has too little editorial selection, and the packages are too coarse-grained.
Now the bottom line is that I was able to set up an Eclipse environment, drawing from the core Eclipse downloads and Eclipse Marketplace offerings, which reproduced the functionality of my old EasyEclipse for Python environment, but with more up-to-date versions. Bravo for the Eclipse project. But they could still learn a lot from the clean, accessible, thoughtfully selected offerings of EasyEclipse.
Perhaps the best way forward is for the EasyEclipse project to recruit new volunteers, then reinvent itself as a packaging and selection project under the Eclipse project umbrella, and with an outpost in the Eclipse Marketplace. Apply that same thoughtful selection and understanding of the developer segments, but deliver it through Eclipse project mechanisms. No need to do their own compilation any more. And by all means keep the EasyEclipse.org domain name and web pages. They rank high in search results and are an enticing place for beginners to look. Merely put pointers from those pages to the new delivery mechanisms.
In due time, the contributors to both the EasyEclipse and the Eclipse projects will find themselves in that special place in free-libre software heaven. But not quite yet, because both projects have plenty to offer.
[Update 2012-March-01: copy-editing]