Skip to content

Model driven development

2008 January 14
by Sven Busse

Juten Tach,

[Update]: Martin is not using the term “Repository Based Code” anymore. He’s now calling it: Projectional Editing.

great article from Martin Fowler about repository based code and model driven development. This is something, i am thinking about for some time, too.

Let’s face it, all our development tools we use every day are taking our text based source code and parse it into something, that these tools can understand. It begins with syntax highlighting, over autocompletion, refactoring and ends with actual compiling into the executable.

At all these stages, the involved tools need to parse the text and make it into an abstract model, with which the tool can work. So the idea with repository based systems is, why do we actually store our source code in a textual form, why not saving the abstract model right away and let our tools directly work with it without the need of parsing text over and over again? And for editing, why not simply show an individual representation of that abstract model to the user, like text form or uml form or whatever you need?

This idea is fascinating me pretty much, because i think, it makes totally sense and could leverage the efficiency of all the tools, we are working with, since the parsing process could be avoided and make the tools much faster.

Of course, there are drawbacks. Code repositories today work best with text based source code, but saving an abstract model would probably be done in some binary format for performance reasons. It would mean, that you loose all those nice merging capabilities, that tools like subversion offer. One would have to find a solution to that problem, but dispite that, i really like the general idea.

No comments yet

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS

*