Markus Voelter

SE Radio 200: Markus Völter on Language Design and Domain Specific Languages

Recording Venue: Skype / Audacity
Guest: Markus Völter
For Episode 200 of Software Engineering Radio, Diomidis Spinellis interviews Markus Völter, the podcast’s founder. Markus works as an independent researcher, consultant, and coach for itemis AG in Stuttgart, Germany. His focus is on software architecture, model-driven software development and domain specific languages as well as on product line engineering. Markus also regularly publishes articles, papers, books, and patterns, and speaks at national and international conferences. In this interview Markus discusses language design and domain specific languages (DSLs). DSLs eliminate a lot of boilerplate code, but, more importantly, they allow us to check diverse properties of the code that are relevant to the specific domain, for instance that all members of a product line support some key functions. However, DSLs appear to need considerable effort to develop. This can be addressed by language workbenches: frameworks that help us efficiently develop languages and families of inter-operating languages. Apart from parsing, language definition involves type systems, transformation to other languages, IDE support, data flow analysis, version control integration, debugging, and refactoring. Many of these elements can be handled by the language workbench. In that area, projectional editors — where the program is entered in a constrained manner — allow the same program to be presented in different ways (for example, as a table or a diagram), where the code is always a correct model of some internal representation. The interview ends with a discussion on language design, where Markus discusses the difference between language readability and writability.

Show Notes

Related Links

Join the discussion
  • Very interesting topic! I enjoyed listening very much and it made me want to learn more about designing external DSLs, programming language design, and makes me think about how we as programmers interact with our software programs.

  • An excellent episode; high quality interviewing and and only minimal book-plugging from Markus!

    Just the right level of depth, and a balanced discussion of pros and cons of the different approaches to DSLs


  • I enjoyed most of this episode. I have built and worked with DSLs (off and on) since the early ’90s. Markus gave a really nice overview that makes me want to get back into seeing what state of the art in DSLs looks like.

    Although I enjoyed most of this episode, I continue to be amazed at the desire of people with a Java background to bash Perl. The statement that most Perl is “just written, run a few times, and then thrown away” does not match my experience. In a recent job, I was working with a set of Perl code that has been in development and maintenance for over 14 years and is quite readable. (I have professional experience maintaining C, C++, Java, FORTRAN, and Forth, as well as Perl. So, I can’t be accused of being able to read it because I only know Perl.)

    In my experience, most of the people making claims like this (and the “write-only language” crack) have never worked on Perl code for any length of time, or have only seen bad examples from around the net. The worst, most unreadable code I have ever had to maintain was in Java. Most code I’ve maintained in any language has been less than perfect.

    Perl is used by quite a few developers on a daily basis to get real work done and solve real problems. I think it does your listeners and yourself a major disservice to comment on a sizable segment of the development community in a way that shows you don’t know what you are talking about.

  • After some thought, I feel that “you don’t know what you are talking about” is harsher than I intended.

    “Speaking outside your area of expertise” is probably a better phrase.

  • Markus:

    Thank you for sharing your passion for DSLs.

    And thank you for!

    Take care,


More from this show