Not saying programming with JSON isn't great but I recommend looking into pulumi.
I'll definitely have to look into it. I like anything that makes the construction of the infrastructure/resources separate from the business logic code but also retains the flexibility of code.
If you don't like JSON, use YAML. It's available in pretty much all the regions, at this point. Big down-side to converting, though, is if you're making used of many of the dynamism-promoting techniques mentioned by the OP, most of the converters puke all over their shoes.
My point was that serialization formats should not be used as programming languages.
Thank you John for the article, and david for the resource. I never did like 'IaC' but it is really 'IaJSON' :S. Pulumi looks like it will actually be IaC. I hope they add more languages beyond JS and Python.
I agree (from my cursory look at Pulumi); I love the idea of making it more "interactive" than just lots of JSON (YAML would at least be more readable but that choice was not mine lol).
Meh... Once you've gotten to the point of parsing JSON in your head, "readable" is relative (though, YAML templates do mean you can sprinkle your templates with comments).
Who is ever going to need to put comments in code? :sarcasm: The biggest gripe I have about current JSON implementation is no provision for inline comments. Infra-as-Code, let me CODE my infra! Not 'infra as data transport format syntax". #amiright?
That's my biggest bitch. Less so for my own sake than as we add people to the team — many of whom are new to CFn's programming constructs. Especially since some of the constructs are fairly limited, sometimes requiring fairly tortuous logic to string together enough intrinsics (etc.) to achieve the desired results.
I've found myself having to write "here's what all this means" walk-throughs for newer staff-members. Comments could fix some of that.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.