TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Why DSLs Fail

13 pointsby rckrdabout 2 years ago

9 comments

jaxxstormabout 2 years ago
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
评论 #34901557 未加载
PaulHouleabout 2 years ago
From my viewpoint DSLs succeed frequently<p>The infrastructure management space is a special case but let’s approach it with some common sense. If I know bash I can script anything. If I know puppet and bash I can script anything with much more work. Most fundamentally, <i>I still need to know how to use bash!</i> Puppet, chef, vagrant, dockerfiles and all the above subtract value and don’t add. Then there are systems like cloud formation which exist for one reason: lock you into a vendor. If that is how you define DSL then DSLs fail but it is not about DSLs it is “why do people keep making bad infrastructure management tools and why do people have the bad judgement to use bad infrastructure management tools?”
mkromanabout 2 years ago
&gt; It’s why I think TypeScript is the language of infrastructure-as-code.<p>What? Since when?<p>Edit: Did a google search for &quot;infrastructure as code typescript&quot; and this persons blog is one of the first results, where they talk about the new cloud development kits which are made to support different languages out of the box....<p><a href="https:&#x2F;&#x2F;i.imgur.com&#x2F;jozV24f.png" rel="nofollow">https:&#x2F;&#x2F;i.imgur.com&#x2F;jozV24f.png</a>
评论 #34901431 未加载
评论 #34901064 未加载
coldteaabout 2 years ago
TFA takes for granted what it should prove.<p>Who said that &quot;DSLs Fail&quot;?<p>There are tons of highly succesfully DSLs
评论 #34900169 未加载
Bostonianabout 2 years ago
Matlab is a DSL that has made its creators a lot of money and which has been adopted widely in engineering and finance. It may eventually be pushed out by Python&#x2F;Numpy or Julia, but it has been very successful.
sirwhinesalotabout 2 years ago
A lot of DSLs are quite successful, but they need to be worth it and require a lot of effort into making them more usable than a simple library for general purpose language, or even just a simple JSON configuration file. A lot of DSLs just aren&#x27;t worth it.
ffwacomabout 2 years ago
His DSLs fail because he doesn&#x27;t know how to use DSLs. There must be one for each level of abstraction for each little problem, all built on top of a single host language so that they can be intermingled and COMPOSED.
评论 #34907441 未加载
didipabout 2 years ago
Popular DSL is fine-ish. But please tell your coworkers to NOT make yet another pointless, poorly thought DSL.
flangola7about 2 years ago
You get what you pay for. I never cheap out and as a result I have never had DSLs that disappoint me.