The following post outline a suggestion for a new Eclipse feature which will make it easier to download and install Eclipse plugins. If you like this suggestion please vote for this bug. Comments and further suggestions may be posted here or in the bug itself.
Here's a common scenario: you are surfing the web, and then, out of the blue, you come across this incredibly interesting tool. You decide to give it a go. What will you do next?
If it is a web application, you would probably signup. If it is a desktop application, you would download it. It turns out that most people will not install it right away. You are now browsing the web: searching for answers, reading articles or just enjoying some leisure time. You are not interested in breaking your concentration and start fiddling with installations.
Eclipse plugins, however, are different. The best way to install Eclipse plugins is using the built in update manager by providing an update site URL. Instead of downloading the software you are left with an update site URL. If you are not going to install the software right away, what will you do? write it on a piece of paper? bookmark it for later? The odds are that you will forget about it a couple of hours later and never install it anyway.
It's a key element in selling software: People who decide to try desktop software should be left with something very tangible: a downloaded file.
Oh, and all you open source developers reading this, trust me: you want to "sell" your software too. There's nothing more rewarding than having people using your software. You won't get money but you will get recognition and gratitude. We are on the same page.
There is an existing option of using the "Dropins" folder. I would bet that most people who use Eclipse or Eclipse based IDEs don't even know these droppings (sorry, couldn't resist) exist. It is not common knowledge when it comes to Eclipse (people working on the platform for a long time tend to forget that).
The Proposal: A New Eclipse File Format
A new Eclipse downloadable file format is introduced. The files will have a unique extension which is associated with Eclipse. Upon double clicking a file in the operating system, Eclipse will receive an open event for the file, much like other OS applications.
The format itself will be a JAR with a different extension (much like WAR and EAR). There are several options as for the contents of this JAR:
- A URL of an update site. The URL could be in the manifest or in a dedicated resource bundle file. Upon launching the file, Eclipse will automatically add the site and start an installation process. One may think of more advanced options to include other than the URL, e.g. the feature name to install, which will transparently select the feature and move on the installation phase.
- An archived update site. Operates much like the remote installation, but uses the local archive. It would be nice to add an option to check for newer versions.
The platform should protect against malicious content, check for code signing and confirm with the user before executing the code, much like it is done today with downloaded content in Windows and OS X.
Future plugin updates will use the current Eclipse update mechanism, although it could be possible to download a newer version of the plugin and install it in the same easy manner.
The result: Installable plugins may be downloaded from web sites. The installation process is a simple process as it is will all applications today: double click to execute the installer, receive an installation UI and complete the installation.
IMHO, the main challenge is associating the platform with the file. For example, I have at least a dozen different Eclipse instances on my machine. Which one is loaded upon double clicking such a file? Well, each OS has a way of handling these file associations and there should be a preferences page for defining which is the Eclipse installation which receives the file open events by default, unless a different platform is already open. Handling the case of multiple running platform also seems simple enough.
Please vote for this bug here.
Sounds simple enough! Can I please have it yesterday? In fact, can we have it for Eclipse 3.4? :-)