A Domain Specific Language

A domain-specific language, or DSL, is a computer language that is specialized to a particular domain. These can be incredibly diverse, ranging from common tools such as HTML for web pages to specific languages that are only used by one single piece of software, much like the DSL that is used here at Lokad for supply chain optimization.

In this episode of LokadTV we find out a little more about how DSLs work, how they’re developed and just why they can be advantageous when compared to more mainstream general-purpose programming languages such as Java, Python, etc. We explore the process of creating such a language from scratch and we discuss the roots that early DSLs had in algebraic modeling languages. We also discuss exactly how DSLs are used and applied in “the real word”.

For example, Microsoft Excel is the archetype of a successful DSL that gives us the flexibility to code logic for ourselves whilst working with the constraints of a decently large database. We consider the major advantages of using a DSL compared to more common programming languages and learn how they can equip a software engineer with the necessary tools to solve certain classes of problems quickly, reliably and with as little friction as possible, without requiring access to all the underlying technology.

To conclude, we discuss the various challenges and we question whether a start-up company setting out now should consider developing its own programming language, as was Lokad decided to do a few years ago.