Unbox This! – Don Box On Code & Data

Don Box (with Chris Anderson as a sidekick) had an interesting (if vague) talk on Lang.Net 2008. In the talk Don Box shows a historical perspective on code vs data and how modelling has been used over time.

Lang.Net Conference 2008
3-07 – Modeling and Languages – Don Box

The talk is about representation independence (oxymoron?), declarative forms and abstractions. It has a historic point of view, showing how abstraction and modelling has been applied over time.

But he is careful not to really talk about anything concrete with respect to what Microsoft is doing now. The talk is done in a slideshow driven by a domain-specific XAML for slideshows which is then transformed into a WPF model that is easy on the eyes.

That in and of itself is nothing special. It is common to encode data in XML, transform it with XSLT into HTML plus CSS etc.

To me the talk has a certain “Intentional” smell to it. I’m guessing we may finally see Microsoft move towards a model where we have domain-specific representations, domain-specific presentations and domain-specific input models.

The “two beers” test (as Don calls it) is not passed because the slideshow is encoded in a CLR specific XML dialect (XAML). If there was a DSL editor for it, it would be, not to say idiotproof, but domain-proof, and with all noise absent.

I wonder if “Avalon” (WPF) could play a role as a code presentation model and interaction model in the future. But it wouldn’t be the first time we’d see a new framework being invented.

Don also talks about search. That leads more towards a type-aware filesystem which again leads me to think of WinFS. It’s time may still come. Maybe in an even more sophisticated semantic form based on semantic web principles and technologies.

The paradigm for the presentation.

models
presentations
representations
interactions
filesystems
searches

concept: [model]; domain-specific expressions.

concept: [representation]; text, markup, schemas, etc.

concept: [presentation]; “sensual” representations (see, hear, etc)

concept: [interaction]; I/O – put information into the model and get it out of the model – “via” the presentation layer

concept: [filesystem]; A type-aware filesystem; files are not atomic, files are type instances.

concept: [search]; A type-aware filesystem is very searchable

In simple terms I believe Microsoft is working on Intentional programming things with domain-specific models and domain-specific code representation, visualization and editing.

That’s what I hope, at least… It’ll also tie in very nicely with Microsofts framework and tool investments.


About this entry