contact ME

Use this form to reach out to me.

Ask me about the software development consulting and vocal services that I can provide for your project.

Name *

Ottawa, ON

I am an independent software development consultant, specializing in model-driven development with Eclipse technology, which has been a passion for the last ten years.  I am widely recognized for my high-quality output, timely delivery, and friendly and engaging manner.

I also happen to be a capable singer, performing sacred and secular works for choir and tenor solo from the renaissance to today.  If you are presenting vocal music in Ottawa, eastern Ontario, or west Québec, I can be your tenor.

What's in a Package?


An ad hoc record of Christian W. Damus's professional and personal activity.

What's in a Package?

Christian W. Damus

There has been some interesting discussion on the cross-project issues mailing list at Eclipse in the last few days, about the Eclipse download packages. There are numerous questions, concerns, assumptions, and opinions about the number, size, utility, and public perception of these packages.


Indeed, this discussion has even spawned its own mailing list for Eclipse-as-an-IDE, which is something that hasn't happened very often in my memory.

Raised in the discussion were a few familiar Eclipse-isms:

  • the P2 UI for software install/update
  • the Eclipse Marketplace UI for discovery of a wide variety of plug-ins
  • "activities" (or "capabilities") for reducing the complexity of the UI

In some ways, these concepts are complimentary as they all serve discrete and useful functions very well:

  • P2 is great for updating the plug-ins I have to the latest version
  • Marketplace is greating for finding stuff I thought I could use but didn't know where to point P2 at
  • capabilities are great for keeping my menus sane while still making functions available when it appears that I need them

But, what if we could combine all of these concepts into one? I would like to have an Eclipse IDE that expands itself as I need it to. It would start with a minimal download, like the Eclipse for Java Developers or even a new bare-bones Eclipse workbench that doesn't even have JDT installed. Then the process is a matter of progressive discovery of functionality and software.


The first thing I need to do when I start working with this bare-bones installation is to create a project, because that's where we do our work in Eclipse. This is where the blend of capabilities and Marketplace discovery starts: just because no tooling plug-ins are installed, that doesn't mean that Eclipse shows me an empty list of New Project wizards. It shows me the wizards for projects that Eclipse will know how to create once it has installed the necessary plug-ins. This is similar to the Show All option today that lets one see wizards from inactive capabilities, but it's more powerful because it knows about wizards that aren't even installed.

So, let's say that I need to do some generation of Lua code from models. The New Acceleo Project wizard in a Modeling category is there for me to pick. I pick it and press Next.


What have I just done? I've discovered something that Eclipse can do for me, that it can't do yet but knows that it can install some plug-ins to provide. There's no need to jump into some other UI to hunt for software from who-knows-where that I may or may not know is the right stuff. I just press OK to tell Eclipse

"Yes, I want to create an Acceleo project now."

and Eclipse responds by telling me

"OK, I can do that, but let me download some plug-ins first."


Great! After a bit, the Acceleo plug-ins are installed, I finish the wizard to create my project, and I get down to work. Just like that.

The nature of dependencies, of course, also means that a bunch of other modeling and development functions (EMF, OCL, JDT) are now installed and readily available.

Bit by bit, I can now discover the vast wealth of excellent tools that the Eclipse community offers but seems to be hidden in some impenetrable wilderness, as my Eclipse grows itself in response to my needs.


Pipe dream? Delusion? Impractical? Infeasible? Maybe, but I might like it.

And so might my cat.