• spireghost
    link
    fedilink
    English
    arrow-up
    1
    ·
    7 hours ago

    I think it makes sense that people who don’t have actual experience in making projects in a specific language won’t be aware of details such as the value 0 being the default in a certain kind of field in a certain language which makes it a good flag for “data unknown”.

    The whole “COBOL’s default date is 1875” thing is just a lie. COBOL doesn’t even have a date type.

    So the problem doesn’t have anything to do with COBOL, someone just made it up

    • Aceticon@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 hour ago

      The way I’m reading is that they were holding a date related value in an unsigned integer field, so the start date (corresponding to 0) was a convention (whether internal or broader than that, I don’t know) and they chose 0, the default initialization value for such fields as a flag for “no information”. Back in the day there wasn’t all that memory and storage to go around so I bet this was a 1 byte field holding a year value.

      Those choices in a system to be used for Social Security for a whole nation make sense in software design terms if you’re having to come up with your own solution for storing dates in as fewer bytes as possible in a language with no built-in date type, but present day teenagers would have never have been in such a situation because there are no currently fashionable programming languages without date types, space isn’t as constrained anymore and they don’t have experience in the kind of projects were one has to store records for hundreds of millions of people.