Replying to Martin Fowler's recent posts
Martin Fowler, in the context of writing his book on DSLs, recently had two interesting blog posts (
this one, and
that one.
I agree with some parts (e.g. the MDA stuff), and strongly disagree with other parts.
Now, because I had to go
flying for the last two days (yipieeh :-)) I did not immediately reply, and hence,
Sven was faster :-). I agree with everything Sven says, and I don't repeat it here.
However, there's one interesting issue that pops up from time to time: repositories. From time to time, people (including me and Sven) point out that it is some kind of problem to store models in repositories. The arguments basically center around the fact that "we want to manage everything as files, in CVS or SVN".
Now, I agree to that, however:
What if you don't have any text at all, if you store
everything in models and repositories, don't all the integration problems go away then? Of course you still need a diff/merge facility (based on the models' concrete syntax, not XML!) and a way to version things, but assuming your infrastructure provides that, wouldn't that be ok?
Also, what is a repository in the first place? A couple of text files in a file system clearly isn't a repository. A database storing an AST clearly is.
But what about a CVS/SVN? What about a bunch of text files arranged in a specific directory structure, with an index file rebuilt from time to time by an indexer?
My point is that a repository is not per se a bad thing, provided the following criteria: (1) you store all your relevant stuff in it (2) it provides versioning facilities (3) supports diff/merge on a meaningful abstraction level.
As it happens, CVS/SVN provides all of this for text files. Hence, it is the lowest common denominator "repository".
Any comments or thoughts? I would really like to get a somewhat better grasp on this repository thing, to find out what *really* is the problem.
Labels: eclipse, openarchitectureware