The morning started with the keynote about functional programming by Don Syme of Microsoft.
I loved functional programming back in my university days, which seems like so many eons ago. He argues that certain classes of problem are far simpler to solve using functional programming and shows a number of examples where F#'s syntax is far simpler, i.e., less verbose, than C#. Personally though, I'm not one who easily buys into the idea that syntactic conciseness in and of itself makes a language significantly better. Simplicity of the underlying semantic/mental model is ultimately what counts, and that of course needs to be balanced against expressiveness power, which generally is the counter point to simplicity. F# definitely looks powerful.
The break was an opportunity for many interesting discussions. One of the great things about conferences is the face to face discussions they facilitate. The summit is particularly conducive to that type of interation. Unfortunately that resulted in missing the start of the e4 talk. The diverse e4 team has made a lot of progress.
After another yummy lunch I was torn between Sven's Xtext talk and Tom's e4 model talk. Two cool things at once. Darn! I know more about Xtext than the e4 model, so I opted for the latter. It was interesting hearing all Tom's reasons for using EMF in e4.
He showed how a simple application model specifies the logical structure of the user interface, eliminating the need to build up these structures with a pile of boilerplate Java code. Then he showed how to extend that base scaffolding with embedded parts. He even showed an example where one process is editing an e4 model stored in a CDO repository while another process is rendering that same model from the shared repository in the actual UI; changes are immediately reflected across the process boundary effecitvely giving you a WYSIWYG editor. He also explained how you can define your own renderer to display the same model in various different ways. It's looking very good!
After that I attended Bernd Kolb and Christian Mohr's query talk.
Bernd explained some of the shortcomings of the existing EMF query technology; it's definitely pretty crude. SAP had some existing query infrastructure that was part of their proprietary MOF implementation; that's what's being contributed to Eclipse. They demonstrated examples of the cool SQL-like query language they support. The query execution engine makes use of the EMF index project, but can work against in memory resources as well as directly against a database too.
Frederic Jouault and Hugo Bruneliere's EMF Oslo talk was next.
They explained that M consistst of three complementary languages: MSchema, MGraph, and MGrammer, analogous to Ecore, EObject, and Xtext. Bridging these technologies involves mapping these specific concepts. To start one could define an Ecore model for MSchema so that it's possible to transform Ecore instances to MSchema instances which could then be serialized to conform of the MSchema textual syntax. They demonstrate their progress toward implementing this approach including ATL transformations for doing the mapping.
Henrik Lindberg and Thomas Hallgren's b3 talk followed a short break.
One might summarize the approach as model driven builds. Key aspects of the build and provisioning process are captured as declarative models, e.g., buildable units which are analogous to p2's installable units, and these ultimately drive the build process. Xtext is being used to provide human readable syntax for the build models. There's a lot of cool stuff planned! If you're working on an Eclipse project, you're probably painfully aware of how much of a nightmare it currently is to set up and maintain your builds. Goodness forbid someone changes the requirements for what needs to be pumped out at the end!
After that I had a chance to chat with a guy hoping to get involved in GEF, a project that certainly needs some fresh and lively committers. Maybe I'll be able to help. This was followed by the Buckminster talk from Henrik, Thomas, and Filip Hrbek.
It attracted a very large audience.
Henrik explained that provisioning a workspace or building a p2 repository ought to be as simple as ordering your favorite burger at your burger outlet of choice.
Filip and Thomas demonstrated that it's as simple as specifying a query to locate the root feature and asking for its p2 repository to be built.
The tools, e.g., the dependency visualizer, are looking very slick. They also demonstrated the repository aggregator, which is based on an EMF model and an EMF generated editor. It can even produce a Maven repository as well as a p2 repository. How cool is that? At the end they explained how the lessons learned from building Buckminster will be used to drive further improvements into the b3 project. Models, models, everywhere.
This was followed by the reception. It included a talk by Microsoft that felt a little too much like advertisement to me. Oh well, they paid for the the food and the spirits---the salmon was excellent and so was the wine---so it was a reasonable trade-off. I finished the day at a birds of a feather session discussing how to transform the modeling project into something suited for supporting a DSL workbench as well as how interested consumers could help fund that effort. It was a very interesting day indeed!
Use and Misuse of Statistics
4 weeks ago