Model Driven approaches have been around for years. There are a multitude of tools, from the venerable MetaEdit or the recently open-sourced BridgePoint to newer entrants such as Mendix. There are parsers, generators, transformation tools, language workbenches and meta (-meta…) models galore.
And there’s no reduction in the number of problems to be solved; as Marc Andreessen observed back in 2011, Software is eating the world.
Model-driven approaches promise a cleaner separation of problem domain and technology infrastructure. That enables us to divide – and so more easily conquer – the twin challenges they present.
So there’s a litany of tools; the problems are growing; and MDx should be able to address the challenges more effectively than mainstream approaches. MDx must be the hottest ticket on the software planet then, right? Right?
Ahh. No. Despite all that, MDx remains a backwater in the global software development world. It’s had brief moments in the sun, for example the OMG’s (in)famous Model-Driven Architecture(MDA) and the more recent interest in Domain-Specific Languages. But they’ve been no more than flurries; light snow showers while the big storms made the news elsewhere.
Why should that be? Attend any gathering of model driven people and there’ll be a mixture of perplexity and a slightly aloof suspicion it’s because the “Muggles can’t abstract”. Joe-Blue-Collar-Programmer just doesn’t see the elegance and beauty in the rarified Model Driven world. And so the disciples resolve to conceive ever more cleverness; new metamodels, projectional/graphical/web editors and the like. And a year later they all meet up again; and MDx still hasn’t taken off; rinse and repeat.
So what are we missing in the MDx community? There may be several factors. But two stand out above all the others:
- We forgot why we model;
- We forgot who models.
These are kind of important. In fact, stark-raving fundamentally critical. No wonder we’re in a pickle.
I’ll look at each in the next couple of posts.
Software Architect and Developer with a deep interest in building better software faster. Long time advocate of model driven techniques.