This is a single archived entry from Stefan Tilkov’s blog. For more up-to-date content, check out my author page at INNOQ, which has more information about me and also contains a list of published talks, podcasts, and articles. Or you can check out the full archive.

QCon London 2007: Rich Kilmer on Ruby and the Art of DSL

Stefan Tilkov,

Apart from the Mongrel one, this was the only Ruby talk I managed to attend — too bad, but at least it was a good one. Rich Kilmer showed multiple examples of internal DSLs he has built in Ruby, with a wide range of different domains. The first example, which he spent the most time on, was from a air force scenario — the domain was the rules for scheduling and managing the refueling of planes in the air. I think he made a good case for how his DSL, designed practically on the spot when talking to a domain expert, helped him understand the domain very quickly (and enabled him to solve the actual problem much quicker). One pretty cool example was the Java Debugging protocol: he has built a library for Ruby that enables access to a running JVM, and specified the protocol in a Ruby DSL which was then used to generate the code that actually sends the right packets over the net. Pretty neat — apparently, some Scheme folks used his executable definition to generate a protocol implementation for Scheme.

Another very good talk, and the last one for me.