3 ms·
This doesn't wash. The DOM is a declarative model, but that doesn't mean that a javascript program can't be a horror story of side effects and improperly graspe
by ris 3y ago
This doesn't wash. The DOM is a declarative model, but that doesn't mean that a javascript program can't be a horror story of side effects and improperly grasped execution order.
- Aeolun 3y agoSure, but you still end up with a DOM afterwards, and you can compare that against a different DOM to determine differences.
- jkodroff 3y agoPulumi resources are immutable in the program after you declare them. I don’t think this analogy really works. It’s not like CDK - Pulumi does not compile down to an intermediate format. When you write a Pulumi program you’re effectively creating a DAG in memory. The resources will be created in whatever order and with the maximum parallelization the dependencies allow.
- jen20 3y agoIndeed, you cannot control the execution order (often much to my chagrin), only influence what the evaluator does via well-defined, declarative, options.
- ris 3y agoI completely realize this, but simply the act of assembling that DAG in an imperative language adds a layer of cognitive load that is undesirable in something that's supposed to _declare_ configuration. Pulumi YAML looks tempting but it's simply not powerful enough to do a lot of things. The other aspect of this is how it adds another requirement to your project - the setup and management of the language environment for the target language. Suddenly you've got another npm/bundler/etc. lockfile to keep up to date, your CI container images are double the size, your developers have another thing to fight homebrew to cooperate with...