In Defense of YAML
> This is not structured data. This is programming masquerading as configuration<p>I find myself expressing this same opinion to people on a frequent basis. See ansible for another big example. Ansible has a try/catch equivalent in yaml [0]!<p>Unfortunately, YAML is more or less a lowest common denominator for these sorts of interactions - being usable from <i>any</i> language is a really big boon. Would love to see the world adopt a trivial lisp or similar for this sort of thing, but that feels a ways off.<p>Helm 3 introducing lua, for example, is a big step forward. Pretty much exactly what I've been envisioning for making k8s deployments less crummy, so I hope they end up with a good product. [1] Helm 2 is using Go-templated YAML, and it's terribly unergonomic and not particularly maintainable. Until you run templating, it's not even valid yaml, so text editors are terribly useless in aiding you with linting.<p>[0]: <a href="https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html#error-handling" rel="nofollow">https://docs.ansible.com/ansible/latest/user_guide/playbooks...</a><p>[1]: <a href="https://sweetcode.io/a-first-look-at-the-helm-3-plan/" rel="nofollow">https://sweetcode.io/a-first-look-at-the-helm-3-plan/</a>