João Freitas

The author describes the pros and cons of creating and mantaining a Domain Specific Language (DSL), explaining how DSLs keep a slow pace of evolution, in contrast to system grow.

Domain-specific languages seem like an attractive solution when templating becomes too cumbersome for a set of problems. The proposition: fit the programming model space to the problem space. Just enough control flow, macros, and functions to solve a specific set of problems (infrastructure configuration, build systems, scripting, etc.)

But DSLs have failed again and again. Why?

Are DSLs hopeless? Mostly. They will be slowly replaced by general-purpose programming languages. It’s why I think TypeScript is the language of infrastructure-as-code. Then, the configuration can live closer to (or inside of) the application code base. Developers can reuse libraries from the language ecosystem. Integration is simple (you might even reuse existing infrastructure). But how can you get the benefit of the restriction of DSLs with general-purpose programming languages?

#matt rickard #dsl #infrastructure