From the Gleam community, crowdhailer, author of the Gleam JS transpiler, joined me; pleasure meeting you!
Recurring themes were meta-, meta-meta-, and even meta-meta-meta-models; parsers, debugging; the IDEs that enable MDD. Here I report on a few talks that inspired me.Debugging Probes - Tijs van der Storm
By inspecting the stack while a program is running, it is possible to see the values of all local variables of a function. This was combined with hot reloading of code. For the C run-time, the delays for single functions was below 100 ms. This provided instant feedback on the execution of an algorithm, while typing. That is, what Bret Victor showed in his presentation 'Inventing on Principle', but then for real.That video inspired me, all those years ago. Nice job!
LionWeb - Niko Stots, Jos Warmer
The DSLs designed are tailored to the domain, but the meta-languages are unknown (rascal) or target mainstream, yet complex languages (Java, C#). Mix in a bit of academia-NIH and the technology stacks are wildly different and incompatible.The LionWeb initiative aims to overcome this, by providing the right protocols. This was demonstrated by creating the meta-model in one tech stack, instantiating it in another and modifying it in the third. The last step resulted in immediate adaptation in the former two tech stacks.
Cascade - Riemer van Rozen
Several tools have totally boring user interfaces. That is not helpful to showcase the exciting underlying technology. An exception was a presentation about Cascade, a meta-languagea for Change Cause and Effect.With the language came a run-time. The language and run-time were showcased with a game.That is, with a meta-meta-model, the game mechanics (meta-model) were defined, from which games (model) were launched. The mechanics were modified and the games adapted to the new mechanics, while running.
This provides immediate feedback for gameplay testing. It requires keeping track of all dependencies in the model as well as the running game. Cool, promising, and as far as I am concerned, the closest to upgrades as BEAM allows.Dutch Tax Law
The conference was organized on the premises of the dutch tax office. For good reason! Tax laws have been rewritten in a tax DSL, so that all notions in it have clear, unambiguous meaning. With the proper model and tooling around this, code can be generated that computes taxes for people. The resulting code is in use since a few years, replacing the old code completely.On top of that, the model is powerful enough to find inconsistencies in rules (i.e. laws or regulations), and this can now be used when new laws or regulations are drafted, so they can be adjusted before they are passed.
Super example of a domain where MDD pays off! You can find the rules on-line.Closing Thoughts
Although hot-loading of code (for debugging or even fast feedback during development) is a recurring topic, BEAM (which has a very clear definition of reloading) seems unknown in the MDD / academia world.A pity, if you ask me, and something I would want to change, The LionWeb protocols are something I should take into account for communication between model-server and client.