Revamping Eclipse Examples?

Even though I’ve been involved in the Eclipse community for around 5 years, I’m still amazed by the projects that are hosted under the Eclipse umbrella. As an “insider”, I have a pretty good overview of many projects and at least a rough picture of all the other cool stuff. While I love working with EclipseRT technologies like Equinox, RAP, EclipseLink, ECF or <insert your project here>, I always find myself in the same situation. This stuff is awesome but do users really get the point of what’s possible? Learning a new technology is always hard, but if you want to develop enterprise-ready, scalable and vibrant platforms using Eclipse components, there are so many obstacles to overcome. You need to have at least a clue about OSGi/Equinox, Extensions and their corresponding Extension points (for each for your consumed modules) and many other things. I don’t want to say that Eclipse is too complicated (which is a topic for another post anyway), but what I would really like to see is a better way to get our future consumers up to speed. As Esther Dyson once said:

A worker’s paradise is a consumer’s hell.

With the Eclipse Examples project we wanted to provide a few exemplary projects to show how to use different projects. In theory a nice idea, but practically I don’t see that this effort was very successful. Wayne and me discussed some ideas back in 2008 but without a concrete outcome. Thinking about this topic after EclipseCon, my current thought was to provide easy ways for our consumers to try out the bits and pieces of all the projects. What I constantly run into though, is that you need to do so many things before you can get started, like setting up a target platform, making your examples depend on the right bundles, using the right extension points/services/etc, creating launch configurations. Many projects already helped themselves by providing examples using PDE templates. That’s the way I’d like to tell newcomers how to get started and would push this even a little further – the idea is to provide some infrastructure in the Examples project to help others setting up their examples. The projects just provide example bundles, maybe a target definition, a launch configuration and a cheatsheet or something. In the end, the user should be able to try out another Eclipse technology within 2 clicks: New Example > That technology, run!

Basically PDE already provides many of these things but it’s not yet at the point I would love to see it. It’s still too complex for consumers to create target platforms (I know what I’m talking about), create their launch configs and get started with the examples. While there are still somehurdles to jump, I think our users and consumers would thank us for getting them up to speed in seconds. It should even be interesting for non-OSGi related examples as other projects thought about something like this for years. I don’t see a chance to have this ready for Helios, but I’m pretty confident that we could do something like this in the timeframe for the I… release train. Would other projects be interested in such an approach to distribute their examples? Please leave a comment on this bug if you do so to collect ideas, wishes and requirements.

5 Responses to “Revamping Eclipse Examples?”

The problem of setting up projects is not exclusive to the examples and I think such a feature should be provided in a way where you don’t need to be an Eclipse project or have IDE plug-ins contributing the examples installed to take part in it. Similar to (Team) Project Set files but with the capability to retrieve the projects from some download location (zipped/p2) and a way to configure the target. So one could just click a link on any website, download a file, open it in Eclipse and you’re ready to go. If you connect the dots, such a “Project Set” could even persist in the workspace (similar to a “Working Sets”), grouping the projects visually and be used to hold the target platform for all the projects (see “associate target definitions on a per-project basis”, https://bugs.eclipse.org/bugs/show_bug.cgi?id=159072)

its always hard to make start of examples easy for users. just working on this for the different roles of users from redView project. I’ll end up with a some-clicks-needed solution:
* install sdk
* add softwaresites (import a provided bookmark)
* install new software (only one click from one site – all dependencies will be resolved)
* set target platform (from provided target platform definition)
* start launcher (choose the one for the Operating system using provided ) and use examples
(btw: providing launchers will be easier if feature-based launchers are working well, then I need only one and not specialized for each OS)
–
as Ralf said: if one day target platforms can be defined on a per-project-base this would be easier.
as for now – in my use-cases I need a special installation