• kevincox@lemmy.ml
    link
    fedilink
    arrow-up
    27
    ·
    19 hours ago

    YAML is fine as a configuration language and ok data input language.

    YAML is absolutely cursed as a programming language. As in Ansible has created a really shitty programming language inside of YAML. Should be burned with fire.

    • towerful@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      16 hours ago

      I guess it’s like HTML if it tried to also adopt it’s own scripting language. Whereas JS interacts with the HTML DOM. Sure, it has quirks, but essentially modified a config.

      I’ve never found a nice way writing YAML with variables and configurability.
      Trying to use yaml to natively describe how a yaml config should be produced is broken. It diverges from the underlying schema, and (because it’s .yaml) isn’t distinguishable from any other yaml.
      Things like helm treat yaml as a template. And I don’t think language servers & tooling are up to scratch yet (happy to be corrected). So basic yaml formatters shit the bed.

      Yaml is a computer readable config file that tries to be human readable, and fails at being actually useful.

      Why projects try and make it useful, I will never understand.

      I honestly think generating yaml from something like python would be a million times easier.
      But then tools like ansible adopt yaml to essentially be a scripting language. As opposed to creating an actually decent solution that uses both python (to generate) and yaml (to apply).
      Or whatever language.