• Aceticon@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 hours 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.