Ferris' notes from part 3
Got up a bit later on day 2. Time is nearly 13.
Michael is talking about DSLs.
Lesser translation between business and programs means lesser interpretation.
Not only business people like this. We make DSLs for ourselves as well.
Internal DSLs (contained within a programming language), and External DSLs which are contained in an external (text) format, which is later on translated and executed.
Rake is internal, since it is ruby. Ant is external since it is translated into something that gets executed. Very powerful, but not always neccesary.
Fluent interfaces, builders are examples of internal DSLs that try to create a sentence-like.
Martin Fowler is in the process of writing a book on this. Should be possible
We see alot of DSLs in testing languages.
In C# you can do any fancy DSL because they have added lots of fancy features.
Is it worth polluting a language with all these features just to be able to build DSLs?
C# is a good case, according to Michael. They have lots of nice language features that makes it easy to build DSLs in C#.
Would rather have language support in the language :)
Qi4J would've liked mixins to do its features. Really wants methods as literals. Wants mixins. And more.
Others do projections of models. Models are DSLs, for instance UML. Antlr.
Is UML a DSL? Extraction vs projection. We're going into the meta-discussion, Michael says. You can say UML is a language, and each diagram is an expression of this language. Explanation on meta-stuff follows :)
Michael continues into talking about the relational databases.
I fell off as Michael went on. Had to do some wiki/chat maintenance.
Schema crawler.
I'm sitting back to listen cause Knut Vidar is taking notes :)