Brussels / 31 January & 1 February 2015


Escaping DSL Hell By Having Parenthesis All The Way Down

Domain Specific Languages, defined broadly, are everywhere. We will look at the good, the bad and the ugly and see where Lisp excels (ranting a bit about Configuration Management tools as that's what I spend lots of my day doing)

The world is buzzing with the idea of teaching everyone to program. Sometimes we create simpler languages and environments for learning but if we constrain them too much we can impoverish the learner.

For scientists we have R, Maple, Mathematica and Matlab etc - but how easy is it to build a web service, run Hadoop jobs, read files in some obscure format or talk to a datastore? Better to give them a productive environment to solve their problems quickly, with the full power of Clojure when they need.

Concretely we will reimagine Netlogo and Geomlab as Clojure DSLs. See how embedding them in Clojure makes the implementation easier, gives greater power to the user and enables extension.

We have a bunch of great embeddings already in Clojure: logic, stats, datalog, CSP - Let’s build more and not trap people in DSL Hell.


Tom Hall