Company News - CodeGen 2007 Conference, Cambridge UK.
These reflections of CG2007 come a week after the event - about enough time for the input to settle down and get a bit of perspective.
Virtual blog of the Conference by Matthew Fowler
Congratulations to Mark Dalgarno of Software Acumen and his merry helpers - the timing of the conference and the content was spot on. No doubt there were the usual quotient of disasters but it didn't show.
Commercially code generation is still very much a minority sport - there were only about 100 people at the show (but much the better for that, of course). Microsoft were conspicuous by their presence, IBM by their absence.
There were enough reports on the use of MDA/MDD in large organisations to reinforce the message that in the long run the approach pays off. Slight emphasis there on "the long run" - and that applies even more to the vendors who are still standing. I was surprised at the number of people who have been doing projects in an MDA style for 7 or 8 years or more.
For a conference about "Code Generation" it was odd that relatively few people were really interested in code generation! It seems as though the modelling side, the management of models and what you can represent in them was the major interest. How you actually turn these into systems was a minority interest. Having been trying for years to present on the innovations we've made in JeeWiz to handle large-scale generation, and make it economically viable and maintainable, I was pleasantly surprised that the attendees at my "Ladder of Abstraction" talk got it!
Modelling and Modelling Tools
The panel on UML and DSLs was good fun if not quite as spicy(!) as I was hoping. In thinking about the talk, I was focussed on the similarity between UML models and DSLs - you can convert any UML model or DSL program into an abstract syntax tree or XML. This means that pragmatic modellers can quite happily use UML tools in an MDA/MDD environment, given an appropriate profile. However, the total solution would be better if (a) some of the basic UML properties could be removed (b) constraints could be defined in Java as well as OCL (c) the tagged values for a stereotype could have more than a simple value - a single XML-style element, or array of elements, permitting nested elements.
Related to this point is the number of case studies that used multiple meta-models for different areas. I thought that with JeeWiz we were unusual in working with multiple meta-models, but clearly in the real world there is a lot of experience with this approach.
This then ties into a comment that Andrew Watson made, that the key diagrams of UML - class, action and state being the main ones - were good paradigms for the modelling required in an MDD shop, whether or not we wanted the exact UML semantics. The ideal next-generation UML tool would then have an extension (and restriction) capability using complete meta-models - ideally EMF - for defining the information behind stereotypes. In this way, the UML tool vendors could absorb the innovations from Eclipse GMF and build a better commercial proposition rather than being pushed aside by it.
We've been thinking quite a bit about GMF, but not done enough to know whether it is ready for use in standard products. Feeback at the show is that it is - that it's largely equivalent to Microsoft's DSL tools, but slightly more capable in some areas.
"Logical" or Abstract Meta-models/DSLs
Peter Bell and I are looking at publishing the meta-models/DSLs we use in our products, hopefully on the Code Generation site. Although we've spent a lot of effort honing these (so they have some commercial value), the motivation is:
- Meta-models take a while to get right. The original thinking and subsequent refactoring to include oversights is hard (so we may benefit from other contributions).
- There are lots of people using DSLs of some sort.
- Comments emerged from the conference of tool vendors re-inventing the wheel. So a home for these sorts of meta-models would at least let people know of the set of wheels.
I've had a couple of discussions with other presenters along these lines, and there is interest in seeing this idea progress.
Pedro Molina suggested we look at Atlantic Zoo which is OK for the bare syntax and a start for implementing a well-known area. However, these meta-models listed here aren't "logical" or abstract, which is our interest, and some description would be nice to get the concepts across! We'll start with business object and UI modelling and go on from there. Contact me (matthew.fowler at nte.co.uk) if you're interested in contributing or hearing about it when they're published.
Some of the presenters (e.g. Axel Uhl's keynote) and delegates have significant experience of large-scale modelling, and all the issues that come with it - versioning, model dependencies, model merge, and code management. (Seeing the extent of SAP's use of modelling environments did make me wonder whether their success is in part due to their long-term use of modelling-driven development.) With JeeWiz, we've managed to avoid these issues till now, partly with a simple universal merge capability and partly because we can reduce the amount of modelling required. However, there's no doubt that large-scale model-driven development shops are going to have to address these issues ... and there don't seem to be solutions in all areas. A good research topic I'd have thought...