I feel that Yaml sucks. I understand the need for such markup language but I think it sucks. Somehow it’s clunky to use. Can you explain why?

  • Eager Eagle@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    4 months ago

    That’s part of the problem. Different number of whitespaces indicate different nesting levels and the YAML spec does not enforce them. These two horrible YAMLs are valid and are not equivalent:

    a:
     b:
         - c
         -  d
          - e
    f:
        "ghi"
    
    a:
     b:
         - c
         - d
         -  e
    f:
        "ghi"
    
    • zero_spelled_with_an_ecks@programming.dev
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      4 months ago

      So it’s easy to enforce locally but you don’t have to. And it’s easy to see indentation on modern IDEs and you can even make your indents rainbows and collapse structures to make it easier to see what’s going on, but I guess since some people want to write it in vi without ALE or a barebones text editor, it’s bad? Like there are legit reasons it’s bad, and other people have mentioned them throughout the thread, but this seems like a pretty easy thing to deal with. I work with ansible a bunch and YAML rarely is where my problem is.

        • A few weeks? How do you stay employed? How do you even feed yourself at that pace? Blocked on making a sandwich, I’ve got the wrong type of bread.

          It’s three lines in an editor config file to standardize the indents across any editor: https://editorconfig.org/

          In vscode, adding two extensions is all I need:, yamllint (if you don’t use linters, I don’t know how you do your job in any language) and rainbow indents. Atom had similar ones. I’m sure all IDEs are capable of these things. If you work at a place that forces you to use a specific editor and limits the way you can use it, that’s not YAML’s fault.

          At a certain point, it’s your deficiencies that make a language difficult, not the language’s. Don’t blame your hammer when you haven’t heated the iron.