And I’ll show you YAML

(a continuation of this post)

  • calcopiritus@lemmy.world
    link
    fedilink
    arrow-up
    31
    ·
    1 year ago

    Serializing? For serializing you probably want performance above all else. I’m saying this without checking any benchmark, but I’m sure yaml is more expensive to parse than other formats where indentation don’t have meaning.

    For human readability: it has to be readable (and writeable) by all humans. I know (a lot of people) that dislike yaml, toml and XML. I don’t know of a single person that struggles to read/write json, there is a clear winner.

    • Kogasa@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Serializing isn’t necessarily about performance, or we’d just use protobuf or similar. I agree Json is a great all rounder. Combine with JSON object schema to define sophisticated DSLs that are still readable, plain JSON. TOML is nice as a configuration language, but its main appeal (readability) suffers when applied to complex modeling tasks. XML is quite verbose and maybe takes the “custom DSL” idea a little too far. YAML is a mistake.

    • DrM@feddit.de
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      JSON would be perfect if it allowed for comments. But it doesn’t and that alone is enough for me to prefer YAML over JSON. Yes, JSON is understandable without any learning curve, but having a learning curve is not always bad. YAML provides a major benefit that is worth the learning curve and doesn’t have the issues that XML has (which is that there is no way to understand an XML without also having the XSD for it)

      • Michal@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Json should also allow for trailing commas. There’s no reason for it not too. It’s annoying having to maintain commas.

  • NewPerspective@lemmy.world
    link
    fedilink
    arrow-up
    27
    ·
    1 year ago

    My problem with yaml is if you truncate it at any random spot, there’s a high likelihood it’s still valid yaml. I don’t like the idea that things can continue without even knowing there’s a problem. The single opening and closing curly braces enclosing a json object is all it takes to at least know you didn’t receive the entire message. Toml has the same issue. I’ll stick with json when it makes sense.

      • marcos@lemmy.world
        link
        fedilink
        arrow-up
        10
        ·
        1 year ago

        Quite like YAML, XML has too many stuff in it. While a lot of parsers are not standard compliant and safe, if there’s any chance the stuff you include on your code can evolve into a fully featured parser, including it is something to avoid.

        There is this language called KDL that looks interesting.

  • Artyom@lemm.ee
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    1 year ago

    Yaml is a great, human-readible file format. Unless there’s an exclamation point in it, then it is an illegible Eldrich horror.

  • Windex007@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    Genuinely curious what features OP is looking for, specifically for serialization as per the post, that has resulted in the conclusion being yaml.

  • magic_lobster_party@kbin.social
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    JSON for serialization all the way. It’s simple and to the point. It does one thing and does it well. There’s little room for annoying surprises. Any JSON can easily be minified and prettified back and forth. If you want it in binary format you can convert it to BSON.

    Yaml is too much of a feature creep. It tries to do way too many things at the same time. There are so many traps to fall into if you’re not cautious enough. The same thing can be written in multitudes of ways.

    • jjjalljs@ttrpg.network
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      1 year ago

      Yes, but whoever decided that json can’t have trailing commas has my ire.

      { "a": 1,
        "b": 2,  <-- nope
      }
      

      There was some other pitfall I can’t remember around missing keys and undefined, too, but I can’t remember it now.

  • interolivary@beehaw.org
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    There’s a special place in hell for the inventor of semantically significant whitespace.

    YAML itself is one of the circles of hell. You have to copy-paste YAML from web etc sources with dubious formatting for all eternity, and the editor doesn’t have YAML support. Also you can only use Python

  • synae[he/him]@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    For serializing? I’d probably just go with json.

    For content meant to be written or edited by humans? YAML all day baby