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.
| This article uses material from the Wikipedia article Yet Another Language To Learn, that was deleted or is being discussed for deletion, which is released under the Creative Commons Attribution-ShareAlike 3.0 Unported License.