The word, used by computer scientists to mean ‘no value,’ has created long-running challenges

  • pHr34kY@lemmy.world
    link
    fedilink
    arrow-up
    15
    ·
    edit-2
    1 day ago

    I’ve seen XML parsers that will convert element content from strings to native types by default. So “0” becomes an int, “true” becomes a boolean, and “null” becomes an actual null. I had to take extra steps to keep everything as a string unless explicitly told not to.

    JSON does not have this problem, BTW.

    • calcopiritus@lemmy.world
      link
      fedilink
      arrow-up
      10
      arrow-down
      1
      ·
      1 day ago

      I don’t think anyone actually chooses XML. There’s no reason to use it over JSON unless you need to.

      • brian@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        12 hours ago

        json is fine as a serialization format for things that need to be text, but it’s not great as something that gets edited by hand.

        not that I enjoy xml, but writing long strings in json is even worse. xml I can write multiline strings as a first class entity.

        I can add a comment to an xml document, json I have to write something hacky like "//": "my comment" and hope whatever is consuming it doesn’t care.

        there’s just as many problems with json parsers, since most but not all of them treat numbers as js numbers, which are basically floats. you can’t rely on an arbitrary consumer having support to parse ints above a certain size so you just have to make everything a string and hope.

        json allows duplicate keys, but they get overridden by the last occurrence. you can’t round trip json without losing something. you can’t rely on just seeing a key value in json text and that being correct since there could be another later. doesn’t come up often but it’s there.

        • calcopiritus@lemmy.world
          link
          fedilink
          arrow-up
          6
          ·
          1 day ago

          I didn’t say that it’s not used. I say that you shouldn’t if you have the option.

          If the entire X world uses Y technology. You have no choice other than using Y technology.