This chapter covers
- What is a Domain-Specific Language (DSL)
- What does (adopting) a DSL(-based approach) do for an organization
- When (not) to use a DSL
- What are the key aspects of a DSL
If you’re reading this book, you’ve probably already heard about DSLs. You might even have realized that you may need to use one. But do you really? And what is a DSL, and how would you build one?
The tricky thing with teaching about DSLs is that it’s a very broad topic, with many interconnections to other topics in both software development, and computer science. This book will not try to teach you everything about DSLs, or overwhelm you with myriad details. Instead, it’ll take you on a carefully-planned route that walks you through a set of connected topics that cover all the basics and skills that you need to craft your own DSLs. This learning path will be example-driven, quite literally going from the concrete to the abstract.
It will also focus on business-oriented DSLs that aim to empower domain experts that are first and foremost business stakeholders that generally don’t have backgrounds as software developers. The “business-friendly” part of this book’s title is meant to encompass qualities like easy to understand and learn, practical, etc. To that end, we’ll start by sketching out an example business case for which we’ll build a complete DSL throughout the book.