Yet Another Language To Learn

"Yet Another Language To Learn" (YALTL) refers to an anti-pattern when using domain-specific languages (DSL). Each DSL comes with the cost to learn it. The cost can be small but it's never free.
When a software project uses too many different languages, the maintenance cost will grow exponentially. This is mostly due to the fact that either all team members need to learn every language. If not every team member is fluent with all languages, they will have to ask for help or figure things out themselves which is either time consuming or error prone.
On top of that, creating a simple language is harder than it looks:
* The parser implementation can make it hard to get the syntax that would be easy to understand
* Standard parser error handling can create correct but unhelpful or even confusing error messages ("Expected one of '.', ',' or ' '")
* Abstinence is easier than self-control
One of the key features of DSLs is that they are limited. They are not general purpose languages. But since it's so simple to add new features to a DSL (since it's so small and simply), it's very easy to blow the complexity budget.
 
< Prev   Next >