Why DSLs Fail
I don&#x27;t think DSL&#x27;s necessarily fail. Puppet&#x27;s DSL was everywhere at one point in the late 00&#x27;s and lots of people argue that Terraform&#x27;s DSL is fairly ubiquitous in the IaC space.<p>The article brings up some fine points about why DSL&#x27;s are restrictive, but the primary issue with them comes from the name: They&#x27;re single use.<p>I meet with companies daily who have tried to adopt Terraform&#x27;s DSL internally and found a few people feel comfortable with it, but the vast majority of the engineering org have zero interest in learning it because to them - what&#x27;s the point? They can achieve the same goal with &lt;insert language here&gt; by using Pulumi or CDK. People will bring the flawed argument that Terraform&#x27;s DSL stops you from footgunning yourself but I&#x27;ve seen plenty of awful, messy Terraform that&#x27;s only maintainable by the person who wrote it.<p>Another consideration is just how much DSLs evolve over time. You eventually end up getting closer and closer to Turing completeness because people really want to solve problems that require it or solve them in a familiar way.<p>I&#x27;ve spoken frequently about my belief that in the long term, DSLs in the IaC space will largely be superseded by programming language based graph building and most of these thoughts come from frustrated users who are moving away from DSLs