Domain-specific languages go digital
Alternative names for ‘domain-specific language’ (DSL) 2022-06-14 #programming
Software developers have used domain-specific languages (DSL) for decades without the concept becoming particularly popular. Meanwhile, modern software development routinely includes many of them: HTML, CSS, SVG, SQL, regular expressions, and various configuration languages.
Considering these languages’ success, it seems strange that software developers don’t talk about domain-specific languages more, let alone invent new ones. Perhaps the concept of domain-specific language needs a better name.
Domain-specific languages
The name domain-specific language accurately describes the concept: a computer language that targets a specific subject-matter domain, and often a particular application within that domain. These domains often correspond to software functionality, such as typesetting or graphical layout, but may also describe more abstract concerns, such as business process modelling.
However, like other descriptive names, domain-specific language lacks convenience and elegance, with the the boring initialism DSL more common in actual usage. Such a descriptive name also lacks the flexibility to encompass new related but adjacent ideas.
Artisanal hipster languages
Artisanal hand-crafted designs better capture recent years’ hipster zeitgeist than a descriptive name. From a derivative branding perspective, artisanal hand-crafted languages and hipster languages might sell better to a new generation of developers, even if that wouldn’t work for everyone.
The name hipster language does suggest a niche and refined aesthetic, without actually excluding countless examples. However, as Wikipedia notes:
Members of the subculture typically do not self-identify as hipsters, and the word hipster is often used as a pejorative for someone who is pretentious or overly concerned with appearing trendy.
DSLs deserve better than that, outside of ironic self-deprecation such as JHipster, a Java-based (hence the J) development platform.
Micro-languages
Regular expressions Domain-specific languages sometimes go by the name mini-languages, referring to the constrained syntax and grammar that sometimes accompanies their constrained purpose, compared to general-purpose programming languages. However, mini-language sounds even more old-fashioned than domain-specific language, perhaps by association with the 1960s’ minicomputers.
Microservices suggest a more modern alternative: call them micro-languages, irrespective of their actual size. After all, software architects don’t agree on how small to make a microservice. And if you wanted to brand your micro-language as an actually small micro-language, you could always call it a nano-language.
Digital business languages
The above discussion looks inward, to the language itself, but modern DSLs would benefit more from a marketing-oriented perspective that considers who and what we create DSLs for. If you create domain-specific languages for business users, you might instead call them business languages.
At the same time, business people these days don’t much like the term software, with its traumatic software development project associations. Software doesn’t eat business, these days; business goes digital. We should therefore promote digital languages to business people. Unless, of course, the problem comes from the word language.