• Streetdog@lemmy.world
    link
    fedilink
    English
    arrow-up
    10
    ·
    2 years ago

    TOML. Easy on the eyes and easy to grep and filter out comments.

    I really like the way Fail2Ban handles it with a .local config. The default doesn’t need to be backed up, and the .local is most minimal and concise. I’m unaware of any other programs doing it that way. I have scripts that either execute sed or tee -a to config files, after making a backup copy of the original.

    • abhibeckert@lemmy.world
      link
      fedilink
      English
      arrow-up
      9
      ·
      edit-2
      2 years 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.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 years 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.

      • jmanjones@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        2 years 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!

  • Veraxus@kbin.social
    link
    fedilink
    arrow-up
    6
    ·
    2 years 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
  • cyd@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 years ago

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

  • darganon@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 years 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.

    • emptyother@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 years 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.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 years 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.

  • JesterRaiin@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 years ago

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

      • JesterRaiin@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 years 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.

        • atzanteol@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          2 years 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.

              • JesterRaiin@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                ·
                2 years 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.

  • Andy@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 years 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.

  • abhibeckert@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    2 years ago

    Assuming you can trust whoever wrote the config file, I prefer if it’s executable code.

    Not really fussed about what language. The point is it’s really handy to have simple logic checks like a basic if statement on an environment variable. I also like being able to split my config files up into multiple files - maybe with an environment variable to check which files will be loaded in.