Thursday, July 26, 2007

Execute them! Bogus.

Many of the Eclipse projects are presented as Platforms, but to make a successful platform you have to balance at least two factors in much the same way as an economist: the value provided and cost incurred. The value added is simply the feature set--is there something of use in there? The other factor, cost, is made up in part by the requirements. For Eclipse plug-ins this is often only thought of as which plug-ins it requires to run, but there's also the Execution Environment to consider.

One of the great things about the PDE is that when you specify an Execution Environment for plug-in projects and have matching Installed JREs within the preferences, it will automatically target your plug-in projects to use the right JRE. No more warnings about generics in a project that hasn't adopted Java5 syntax or about not supporting them in the targeted JRE. This even lets you build plug-ins specific to each environment if needed, allowing for multiple implementations of the same functions, or more commonly the graceful deactivation of certain features when running in older environments.

The larger ramification is that the Execution Environment is now every bit as critical to think about as the plug-in and version dependencies. If you are developing a plug-in that specifies an Execution Environment of J2SE-1.4 but has a dependency on a plug-in specifying an Execution Environment of J2SE-1.5, your plug-in now implicitly has an Execution Environment of J2SE-1.5 as well. Conversely, the Execution Environment you specify on your plug-in has a direct effect on how readily it can be used by someone else, and that affects the cost of adopting your platform. It's little surprise that much of the Eclipse Platform as we know it requires J2SE-1.4 or less. So keep in mind the Execution Environment you choose for your plug-ins--some day you might find it running in the most unexpected of places.

Tuesday, July 24, 2007

The Bug Day Cometh

For those not in the know, a Bug Day is a day when we, the developers, pause for a moment and take a fresh look at our bug backlog. For the larger community it's a chance to help triage bugs by sorting out which ones are still problems, or even just identifying the ones that need more information. After all, unless there's enough information in the bug to help developers reproduce what's broken, it can't be fixed. For anyone who wants to get into the development of an Eclipse project, it's also a great time to submit a patch and get feedback from the committers within the bug itself or through other avenues such as IRC. However you participate, it's a day to remember that we can't make our projects their best without the help of the community, and for the community to help us to scratch whatever has been itching at them.

As of right now, two committers have signed up to be contacts for the Web Tools Platform project, but I wouldn't rule out there being more committers before the day itself arrives, or more projects at that. As has been pointed out elsewhere, the first day is largely an experiment.

Join us, won't you?

Monday, July 23, 2007

Keyword filtering, or I hear the '70s are making a comeback!

It's a strange thing thinking about the evolution of interfaces for microcomputers. We started out with command lines, and then went to smarter command lines, and then swapped those out for GUIs. Browsing for the right command using windows, icons, and menus was supposed to be easier than trying to recall arcane command names and options, and yet here we are going back the other way. The rise of feature-laden applications and operating systems has led us back to relying on text, again, as Google Desktop finds itself preinstalled on my newest work machine and both Apple and Microsoft tout the built-in search facilities of their latest Operating System offerings.

And how is Eclipse related to this? Adopters probably realized early on that adding each preference page into their products had a cost: it made it harder for a user to find the important one. Eclipse 3.2 brought us the org.eclipse.ui.dialogs.FilteredTree control and used it in the Preferences and project Properties dialogs, helping to alleviate some of that problem. It searches the names of the individual pages for matches against what the user types into a text field, automatically benefiting from string externalization of the page titles. But did you know you it can go deeper? I present the org.eclipse.ui.keywords extension point. It allows you to define a list of keywords which can then be used for additional hits in the filter field, allowing a search on formatting to reveal WTP's formatting-related preference pages:

Not bad for an extra couple of words.