XML has its place, but I wouldn't want to replace my yamls with XML.
XML has its place, but I wouldn't want to replace my yamls with XML.
The problem comes when you try to use it as a programming language in and of itself (which MS encourages because it's a route to vendor lock in). It's a shitty, shitty programming language with shitty debugging tools.
To your second point: yes, yes, and very much yes.
Creating complex release workflows within GHA is hell given the debugging situation and that's what we're using because 'it's there, use it, everyone's using it'. Send help
Templating and significant whitespace is the worst. 10 commits in a row of "error on line 1" until helm finally parses what you want.
I am a software developer with extensive distributed systems experience. I like thinking about systems, not guess-and-check on config templates that become a bespoke DSL with no proper way to debug.
Our config structure requires similar but individualized configs for on-prem and the cloud. These can deviate for the region, the data center, the logical cluster, and at the individual node level for A/B or canary reasons. And of course local dev. You need to have a way to know where the deviations are, like different regional hostnames for services you connect with, different node sizes or replica counts, and different labels, any of which may or may not be correct and will cause an incident if wrong.
Search you yaml PRs, and I bet you will find a commit along the lines of "because yaml."
* JSON doesn't handle multiline strings.
* JSON is not especially readable (no structure enforced, braces and double quote mandatory).
* JSON can't load YAML but YAML can load JSON.
(lots more)
It's annoying though because it's so mature compared to everything similar (even YAML, which I obviously quite like); like if you make an XSD for your config files everyone gets free editing features (not just validation, completion as well, even completion of attributes)
Those are used in JavaScript to give you the option to provide an expression in place of a single term. But that's not even allowed in JSON, so the commas aren't serving any purpose at all.