There’s a lot of discussion about lock-in relative to vendors and tools. I am confronted with these discussions in the context of domain-specific languages, because they rely on tools like Jetbrains MPS or Eclipse Xtext. If you build and use DSLs, you are locked into these tools. Is that a risk that should be taken? What happens if the tool “goes away”, then it is no longer supported, and you are (more or less) forced to move on?

Let’s explore the two implementation options that are usually available when we implement subject-matter intensive systems.

The first one is a DSL…


DSLs and Subject Matter Experts

As you probably know, I spend my time developing domain-specific languages. In virtually all cases these languages are intended for use by people who are not trained programmers. They might be engineers, healthcare professionals, tax law experts or subject matter experts in various other fields. However, because their expertise is often the backbone of software systems, this expertise has to make it into the software somehow. I believe — and can demonstrate through successful projects — that we can and should build languages and tools that allow subject matter experts to contribute this expertise directly to software as opposed to…


For the last two years, Antonio Bucchiarone and his colleagues have been working on editing a book on domain-specific languages in MPS. In addition to an introduction, it contains ten chapters, most of them case studies of real-world DSLs developed with MPS. The book is available now directly from Springer or at Amazon (for way too high a price, but that’s another matter).

I have been involved in two of the chapters, and since you’re reading my medium article, let me point out these two :-)

The first one is called A Domain-Specific Language for Payroll Calculations and is a…


I am frequently in charge of running workshops where a group of stakeholders, often experts in their field, come together to agree on how something works or is supposed to work. This happens in the context of language design, where domain experts try to find abstractions that should go into the language to faithfully cover the domain. But it also happens when trying to decide how a particular software system should be architected in order to fulfil certain requirements. Here are some thoughts on how you should approach running such a workshop.

People Stuff

As a moderator, you should do two things…


This most recent post on the relationship of DSLs to other software engineering fields is motivated by a recent interactions I have had with software architects. They seemed to consider the use (or not) of DSLs more or less irrelevant to “the architecture”. It’s not the first time I have encountered this position, so I thought I’d write about it next.

Steel Architecture :-)

DSLs specifically for software architecture

First of all, there are DSLs explicitly designed to express architecture. Examples abound, they include the various Architecture Description Languages, SysML, to some degree UML, but also more domain-specific ones such as AUTOSAR or Franca.

The idea is described…


A few suggestions on what to do and not to do

This one is a little bit different. It is not about DSLs, but about writing. I have been writing a lot over the last couple of years — blog posts, papers, and books — and I was also involved in helping younger engineers to get a grasp of how to write well. And maybe even enjoy it a bit.

This post is a collection of best practices that I try to stick to when writing. They might not be totally obvious for people who do it less. …


Software quality is a huge field: there are lots of different aspects that could be labeled as being part of “good software”. These include

  • fitness for purpose (there might be a competitive word processor that has way more formatting options, so it is “better quality”)
  • number of errors (sure, that competitor has a lot more features, but it fails to save the document every other time — not good quality!)
  • a wide range of non-functional concerns such as performance, memory consumption and security (this other word processor takes so much memory I can’t run it on my machine)
  • and the…

… and not so much for software developers

I have recently been asked (by Jurgen Vinju) why I always promote DSLs for domain experts and non-programmers, and not so much for developers. So in this post, I’ll explain my position.

Before we continue: I am not at all suggesting that developers should not use DSLs. In fact, there are many cases where it would be useful. This text is about why it is harder to convince them.

Defining Terms

We should probably define what we mean by developer. To me, a developer is somebody whose main skill is software engineering (or development or craftsmanship, if you prefer those terms). They…


Another perspective on the knowledge in a domain

Manufacturing Telescope Mirrors

Modern optical astronomy relies on huge telescopes such as the LBT or the VLT , because the light gathering power and resolution of a telescope are more or less directly related to the diameter of the mirror. To ensure image quality and avoid optical aberrations, the surface of these mirrors has to be very precisely ground and polished, down to the scale of micrometers. In addition, this precisely-shaped surface may not be bent or otherwise distorted by temperature effects. So the material from which these mirrors are made is hugely important. …


If you are here for language engineering stuff, please skip this one.

Exactly one year ago, on June 7, 2019, I flew in the backseat of an F-16 of the US Air Force Thunderbirds air demonstration team. I got the opportunity because my omega tau podcast fits well with the Thunderbirds’ STEM outreach activities.

I have been in love with the F-16 since I was a child, so this flight was a really big deal for me. June 7 last year really wants the best day of my life until then, and, as I speculated in the podcast episode, it might also be the best day
going forward.

One year later, this…

Markus Voelter

software (language) engineer, science & engineering podcaster, cross-country glider pilot. On medium mostly for the software stuff.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store