Hacker News new | ask | show | jobs
by charlotte-fyi 750 days ago
I think that declarative configuration languages scratch the itch of a lot of developer brains, but in practice it doesn’t really matter and using more familiar languages is a huge benefit to devex that shouldn’t be overlooked if the goal is to be mainstream. Yes, it requires more discipline on the reviewer front not to create abstractions that are too powerful/footgun-y, but it’s totally possible to write clear, declarative code in a “real” programming language without artificial constraints.
2 comments

This is pretty much the same stance many people hold about Pulumi and I never found it compelling there either. In that product's case, the core languages for writing expressions are the languages that IMO have some of the most dysfunctional dependency-management stories in industry (Python, Node/JS/TS, Golang).

Since part of the sales pitch of using a general lang is emphasis on code reuse, it rings kind of hollow for me there, and here too.

I'm not so worried about my disciplined coworker who just wants to help. If we were all reviewing his code I'd agree with you.

The people I want to help are those who are unknowingly reviewing malicious commits, and I think that declarative configuration languages have a part to play there.

This is solved in tools like Pulumi by having a declarative and auditable build artifact as an intermediate step that can be diffed. This seems to solve a lot of the security issues (and is generally a good idea anyway).
I would still prefer to debug terraform (which is a fair bit more declarative) rather than pulumi