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.
00:38 What are DSLs?
02:08 What are the problems in the real world we use DSLs for?
04:09 Why are you not using more mainstream programming languages for these tasks?
05:25 Why was a DSL so interesting to Lokad as a Supply Chain company?
07:25 Does using a more mainstream language mean that configuration would have taken more time?
09:28 Does using a DSL introduce any limitations? Does it stop you from implementing anything you would like to?
12:54 How long does it take to develop a language like this? How long did it take at Lokad?
14:48 If you were a startup starting out now, would you recommend setting out on that path and creating your own programming language?
18:08 What is the key message here?
20:03 What are the industries you see as working well with their own DSL?