• @Telodzrum
    link
    English
    201 year ago

    IDK what the best is, but I know for certain it’s not YAML.

  • Veraxus
    link
    fedilink
    201 year ago

    If you want the file to be directly human readable/editable:

    1. TOML
    2. YAML

    If you never need to look at it or edit it manually:

    1. JSON
    • @[email protected]
      link
      fedilink
      English
      141 year ago

      I hate yaml with a passion. for stuff such as ansible it becomes an uneditable mess (one copy and paste away from destroying the whole file)

      luckily, yaml is a superset of json, so you could just write json and feed it through a yaml parser and it’ll work

      • @bob_wiley
        link
        English
        1
        edit-2
        1 year ago

        deleted by creator

        • @[email protected]
          link
          fedilink
          English
          11 year ago

          if i miss a quote in json, it’s an invalid file. I fix it and move on. Maybe just pass it through a beautifier or something.

          if I mess up indentation in yaml (which can easily happen after a copy and paste), I get a valid file that means something completely different. And no beautifier can help with that, because it’s a valid file. I have to look really closely to find the error, because tools can’t help. And when I do, I usually have to change multiple lines, instead of just adding a comma.

  • @Streetdog
    link
    English
    18
    edit-2
    10 months ago

    deleted by creator

    • @abhibeckert
      link
      English
      17
      edit-2
      1 year ago

      Uh no, the worst is a tie between XML and JSON.

      XML because the syntax is hard to read and even harder to write, and JSON because you can’t do comments. WTF.

      • @[email protected]
        link
        fedilink
        English
        51 year ago

        XML is a bit verbose but otherwise easy to understand. JSON5 supports comments.

        And neither requires me to explain weird formatting nuances to devops engineers.

        YAML is a pain to read (lists of structures are very messy), can’t be auto-formatted, and is full of weird “gotchas” (Norway, errant tabs, etc.) if you don’t do things “the right way.”

        Requiring the use of whitespace in formatting is wrong. End of.

        • @[email protected]
          link
          fedilink
          English
          01 year ago

          Somebody has to say it, so I’m taking on the duty:

          If whitespace is a problem, you use the wrong editor.

          • @[email protected]
            link
            fedilink
            English
            61 year ago

            Oh, yeah, nothing like telling a dba they’re using the wrong editor when they’re trying to configure something.

            If your config format requires specific editors you’re using the wrong format.

      • @jmanjones
        link
        English
        1
        edit-2
        1 year ago

        I instant exit on XML conf files. I have no idea how to parse the info, maybe I should. But there are too many tags and my eyes instantly glaze over when I see it!

      • Paradox
        link
        fedilink
        English
        51 year ago

        Makes certain levels of nesting painful

        You can say this is a design choice, and you shouldn’t ever go too deep in config, and I’d agree, but it is a limiting factor to be aware of

  • exu
    link
    fedilink
    English
    81 year ago

    For simple stuff, INI is pretty good.

    I must admit I’ve written stuff that uses a JSON config file, but I might finish implementing YAML instead. Any day now…

    • Alien Surfer
      link
      English
      2
      edit-2
      1 year ago

      Agreed about INI for simple stuff. Not good for arrays and nested things though. Usually use binary for that type of config (with clear documentation). Most binary config files I use are plain old C structures. I’m not a web person so no need to make the config plain text.

  • @darganon
    link
    English
    51 year ago

    I like xml, but it isn’t the easiest to read.

    I hate yaml with a burning passion. At least with JSON you can compress it all down.

    • @[email protected]
      link
      fedilink
      English
      2
      edit-2
      1 year ago

      A compliant yaml parser will read json, as they’re essentially siblings… so just write your configs in json and they’ll work, if you dislike yaml.

      • @darganon
        link
        English
        21 year ago

        Thanks for the tip!

    • @[email protected]
      link
      fedilink
      English
      11 year ago

      I’m no fan of XML. It looks messy and the schema is difficult to write, imo. XML works best as a markup language.

      YAML could have been okay if it were stricter with what they consider strings, and used tabs instead of spaces.

      • @[email protected]
        link
        fedilink
        English
        31 year ago

        Using whitespace was a mistake. I know all the kids love it but it’s just wrong. I’ve never had as much difficulty explaining json or xml to users as I have yaml.

    • @[email protected]
      link
      fedilink
      English
      0
      edit-2
      1 year ago

      We seem to have something in common: there is a serialisation form, we strongly dislike. But what I cannot understand is: why the heck would anyone torture anyone else to read or even write XML? XML is the absolutely worst configuration language I can imagine. I mean: when is something an attribute, when a tag on its own? What is even a list? And don’t forget to include a full HTTP URI for the namespace, otherwise the tag is not defined.

      By the way: all valid JSON is valid yaml as well. So in theory, you can use yaml as JSON with comments.

      • @darganon
        link
        English
        11 year ago

        I mainly work with windows, and powershell works great with xml.

  • @cyd
    link
    English
    51 year ago

    .el (Emacs Lisp), nothing beats using Lisp to configure a Lisp environment.

  • @[email protected]
    link
    fedilink
    English
    4
    edit-2
    1 year ago

    For my last self-made program, I just wrote a config.py, and call import config from other code files and write my config in Python.

  • lnxtx
    link
    fedilink
    English
    31 year ago

    That one which I can automate.

    I mainly use Ansible or Puppet. So YAML isn’t that bad if you fully understand it.

    Puppet language sux IMHO.

  • Maharashtra
    link
    English
    21 year ago

    Depends on the purpose of the software. In certain specific situations a plaintext *.txt is unbeatable.

      • Maharashtra
        link
        English
        21 year ago

        The “PURPOSE” is the keyword.

        If the purpose of the software is to work in closed, offline environment with Mr. NOTECH operating it via “line 5: rotations per minute; line 6: temperature in Fahrenheit” commands, then trust me, it’s going to get the job done.

        • @[email protected]
          link
          fedilink
          English
          2
          edit-2
          1 year ago

          “unbeatable” and “get the job done” are very different claims. If you just have bare unlabeled numbers on “magic lines” in a file - sure you can work with that. But I’d hardly say it’s “unbeatable” compared to “anything else” for readability and clarity. It’s the type of thing programming classes have students do so they don’t have to introduce libraries or other concepts.

          It’s very likely that Mr. NOTECH would be able to understand “TEMP_F: ###” just as easily as “put the temperature on line 6”. And it would likely be MUCH easier for Mr. NOTECH to look at a config file and read back to you what the temperature setting is. Especially if they haven’t worked with the software for long. As a bonus it would be easier for Mr. NOTECH to know whether the temperature should be in F or C. Or even Kelvin.

              • Maharashtra
                link
                English
                -11 year ago

                I absolutely am. You’re simply overthinking it - the scenario I provided makes plaintext *.txt perfect.

                Sure, we can spend the rest of the day inventing scenarios, where Mr. NOTECH will be manipulated remotely by aliens, and what then, but that’s an exercise in creativity, not a situation that needs to be taken into account.

  • BoofStroke
    link
    fedilink
    English
    21 year ago

    That depends on if a human is reading/writing it, or a program.

  • @[email protected]
    link
    fedilink
    English
    11 year ago

    https://nestedtext.org/

    It’s like yaml but simple, consistent, untyped, and you never need to escape any characters, ever.

    Types and validation aren’t going to be great unless they’re in the actual code anyway.