• merc@sh.itjust.works
    link
    fedilink
    arrow-up
    10
    ·
    6 hours ago

    https://dev.to/mdchaney/cobol-dates-may-20-1875-and-disinformation-5ggh

    1. There is no “date” data type in COBOL. Dates are stored however the programmer wants, but usually numeric character strings
    2. There’s no “default” date, even if there were such a data type
    3. Even if there were a default, 1875 would be a bizarre choice

    That (obviously) doesn’t mean Elon Musk is right. It just means that this explanation of it being some magical COBOL epoch value is wrong. What’s more likely is that the Social Security database is very old and has a lot of iffy data in it.

    My guess is that it contains everybody who has ever had a social security record, including all the duplicates, all the typos, and everything else. At some point there were probably hundreds of thousands of records that were transcribed from paper into a computer, and it was considered safer to keep the iffy data and make a plan to deal with it later, vs. remove someone from the database who should legitimately be there.

    I would also imagine that the systems that take the records out of the DB probably have filters in place that remove the (known) bad records before they’re used.

    • shawn1122@lemm.ee
      link
      fedilink
      English
      arrow-up
      15
      ·
      12 hours ago

      There are many people who were born in developing nations during times of war who do not know their exact age. They usually do have an idea of a range though.

  • Kalysta@lemm.ee
    link
    fedilink
    arrow-up
    42
    ·
    15 hours ago

    I keep hearing that gen Z is actually pretty shit with understanding things outside GUIs.

    And now I’m watching it actively destroy my country.

    • Decq@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      2 hours ago

      I get this feeling too, but then again can we blame them? With all the locked down tech these days you really have to get out of your way to learn. And in most cases it works well enough. Whereas people growing up between lets say the 1970-2000s had to muck around with their tech to get it to work. Thus learning the intricacies while using it.

    • Natanox@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      47
      ·
      15 hours ago

      Less of a generational problem, more of an educational one. Selfish, badly educated grifters that got pushed into high offices can be of any age. Musk also didn’t recognize SQL when he looked at it, which is arguably even more funny.

  • LeFantome@programming.dev
    link
    fedilink
    arrow-up
    104
    ·
    19 hours ago

    The actual payment system stops payments automatically at age 115 and requires manual verification to restart. The database that is being reported is not even a report of who is getting paid.

    This is just dramatic, public evidence of the arrogance and incompetence of DOGE from down to his racist younglings.

    For a while, I thought they would at least be good at technology. This episode shows that even that is not true.

    How he chose this elite group of chuckleheads is an eyebrow raiser. Other than racism, they seem to have no credentials at all. I mean, on brand for this administration I guess.

  • ChristmasIslandZone@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    11 hours ago

    Conspiracy theory: They know this, but being able to claim to their followers, with official records to show for it, who know NOTHING about programming, is an easy, effective win for them. They can claim fraud to their gullible audience and now have records they can point to and say “LOOK! THEY’RE GIVING DEAD PEOPLE SOCIAL SECURITY MONEY!”

    • LanguageIsCool@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      7 hours ago

      This is why you come up with a hypothesis before running an experiment and collecting data. Otherwise you can pick a pattern in the data to propose just the right hypothesis.

  • gravitas_deficiency@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    57
    ·
    20 hours ago

    Jesus fucking christ the interns who have neither seen nor heard of COBOL have also not encountered the concept of a sentinel value used as a fallback/default.

      • AA5B@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        13 hours ago

        Date time types have long since been based on a 64 bit number , at least in Linux. However the old 32 bit date time types are still there so older programs won’t break, and probably on emdpbedded systems.p. So it comes down to the apps: how many old apps or old embedded systems will still be around?

        • PieMePlenty@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          12 hours ago

          How many cobol systems are still around in 2025. If it works, don’t fix it. And I have a feeling a lot of things will need fixing in 2038 lol

          • AA5B@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            11 hours ago

            It will be interesting to see that play out. The thing is the 238 prboem spas long been solved just like the y2k problem was.

            The Linux datetime types were moved to 64 bit values long ago, so this problem is thousands of years out. The old 32 bit values was a limitation of older systems not handling larger values, but almost all hardware today is either 64 bit or has hardware support for 64 bit data. You mainly have some older embedded systems

            But the legacy 32 bit APIs are still there so it doesn’t break backward compatibility. You have huge ecosystems of software that still use these APIs and may still handle datelines as 32bit. There’s no way to find them all, much less make sure they’ve been updated.

            Just like y2k, 2038 will have been a long solved issue, that may still exist due to ancient or poorly written applications. All you can do is a huge effort of trying everything to find any remaining issues before they cause problems. I’m optimistic because y2k was a problem cased by every application handling their own dates, whereas for 2038 its cause was in an underlying data type that has long since been fixed. Surely all applications will have been rebuilt to the new API in that 20 year or so period, right? Right?

            • Randelung@lemmy.world
              link
              fedilink
              arrow-up
              3
              ·
              11 hours ago

              I expect governments to set up own time servers and reset it to 1970 before upgrading their old Win XP machines.

    • sasquatch7704@lemmy.world
      link
      fedilink
      arrow-up
      11
      ·
      edit-2
      17 hours ago

      What do you expect? most of the guys in “DOGE” weren’t even alive on 9/11 I’m a bit surprised that they still have something in COBOL, maintenance probably costs o fortune, good luck finding young COBOL devs

      • JackbyDev@programming.dev
        link
        fedilink
        English
        arrow-up
        6
        ·
        15 hours ago

        I’m ready to learn COBOL. I will take up the torch. If you know good places to start, let me know. Last time I looked into it it seems way more involved than running stuff like Python, Java, and C.

        • sasquatch7704@lemmy.world
          link
          fedilink
          arrow-up
          4
          ·
          14 hours ago

          I see, you want that that Lamorghini, well if you really want udemy is always a good start. Personally the difficult part for me when learning a new programing language is not resources, it’s the motivation to keep do it and I usually need a real project to work on. (10 years + dev)

          Usually you find on github “awesome-XYZ” repos (ex: awesome python, awesome c, awesome go), but for cobol, most of the projects are dead

          https://github.com/loveOSS/awesome-cobol?tab=readme-ov-file#email

      • andros_rex@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        13 hours ago

        Is being a COBOL dev something that can get you jobs?

        I’m pretty good at FORTRAN and would love that kind of “you have invaluable skills so we can’t get rid of you for being queer” gig.

        • sasquatch7704@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          4 hours ago

          It’s a niche, most of the companies use something more modern, easier to find devs, but there are still some that have to mentain that old code while they probably at the same time try to replace it with some other more common language (Java, C++, Rust, Go), I think it’s still used by some legacy systems in governments and financial institutions

          It’s like knowing an extinct language, most of the time is useless, but if someone needs your skills they better pay good for it.

  • jsomae@lemmy.ml
    link
    fedilink
    arrow-up
    136
    ·
    1 day ago

    Teenage programmers can understand legacy code. These ones didn’t. Don’t dis teen coders.

    • geogeogeo@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      13 hours ago

      The issue isn’t inherently age it’s just time and experience, understanding different coding patterns and paradigms that have changed over the years etc. Even someone who’s been coding every day from ages 14-20 can’t have the same knowledge and experience as someone who’s been working with software since the 90s or earlier. Granted, there will always be brilliant people who even when lacking experience are more talented and skillful than maybe the majority, but that is uncommon. I’m only in my late 20s. And I remember in college there was a huge diversity of skills, from “are you sure this career path is really a good idea for you?” To “holy hell how did you do all of that in one hackathon?” But even for those really smart folks, they aren’t just going to inherently understand all the different ways to organize and structure code, all the conventions that exist, and more importantly why those methods and structures exist and the history that informed them. I’m not saying you need on the ground experience (although, I’d say many people do, as many people can’t really internalize things without direct exposure), but there’s just not enough time, literally, in the handful of years that is childhood and teenage years to absorb all that history.

      Anyway, what I’m getting at is that, yes, I agree that the problem isn’t inherently about being teenagers but I do think it’s a valid criticism that it’s kind of ridiculous to have such young folks leading this kind of project given it’s literally impossible for them to have the same amount of experience as software vets. It’s also valid that young people are capable of seeing things in very new ways, since they aren’t weighed down by al that history. But that’s why diversity is useful especially for such a monumental project as this.

    • spooky2092@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      23
      ·
      edit-2
      22 hours ago

      How many teens you think can actually read and understand legacy languages like FORTRAN and COBOL? Let alone a complex codebase written in them?

      I studied COBOL a bit in college and it’s not exactly hard to read short snippets if you understand other languages, but good luck wrapping your head around anything remotely complex and actually understand what it is doing without having someone who understands the language. Hell, 15-20 years on and multiple languages later, my eyes still cross trying to read and grok COBOL. The people supporting those old code bases get paid well for a reason …

      • jsomae@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        7 hours ago

        I’m familiar with a dozen or so teenage romhackers. Assembly surely harder to get the big picture of than cobol, but they’re making incredible changes to 30-yo video games.

      • tempest@lemmy.ca
        link
        fedilink
        arrow-up
        20
        ·
        20 hours ago

        Learning to COBOL is not itself that hard.

        Understanding decades of “business” logic is.

        It isn’t WHAT it is doing, it’s WHY it is doing it that makes these systems labyrinthian.

        Also afaik they don’t get paid that well which is part of the problem.

    • JustEnoughDucks@feddit.nl
      link
      fedilink
      arrow-up
      59
      ·
      1 day ago

      I don’t know how many teenage programmers you have interacted with recently, but they are generally just learning the basics, learning core concepts, experimenting, etc…

      There is a huge gap between making small, sometimes very cool and creative even, projects and understanding a giant legacy codebase in a language that is not taught anymore. I mean, even university grads often have trouble learning legacy code, much less in COBOL.

      You wouldn’t say your average teenage cook could make a gourmet meal for a house of 50 people 😅 not a dis, just they haven’t had the time to get to greybeard level yet

      • jsomae@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        7 hours ago

        I would imagine these teens didn’t learn through the conventional educational channels.

      • xor@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        21
        ·
        1 day ago

        this is why, if they heavily modified the code in such a short time and they couldn’t understand it: it proves there was a previous data breach and they’re just installing the pre-written patches… the smoking gun that i can’t explain to anyone

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

      This is not a problem specific of teenage programmers - it is natural for just about everybody to not really know the ins and outs of a language and best practices when programming with it, when they just learned it and haven’t actually been using it in projects for a year or two at least.

      What’s specific to teenagers (and young coders in general) is that:

      • They’re very unlikely to have programmed with COBOL for a year or two, mainly because people when they start tend to gravitate towards “cool” stuff, which COBOL hasn’t been for 4 decades.
      • They haven’t been doing software engineering for long enough to have realized the stuff I just explained above - in their near-peak Dunning-Krugger expertise in the software engineering field, they really do think that learning to program in a given language is the same as having figured out how to properly use it.
      • spireghost@lemmy.zip
        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.

      • jsomae@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        7 hours ago

        my brother taught me to code when i was 6, so at 19 i had 13 years of experience already. At 6 i was mostly doing simple stuff like qbasic, vb6, but still it adds up. I’m not saying I’m a great coder, not by a long shot, just that I was experienced as a teenager. I assume a lot of these teenagers are much better than i was.

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

          I taught myself coding at 14 on a ZX Spectrum 128 and was doing Assembly within 2 years.

          By now I have over 3 decades professional software engineering experience, almost 4 decades in total if including the stuff I did non-professionally.

          Looking back, I knew how to make programs (even made a Minesweeper for the Spectrum in Assembly) but that’s not at all the same as knowing the good or industry standard practices in the languages I used.

          Whilst it should be way easier now to find those things out (there was no Internet back when I started), in my experience one needs to actually have been coding in a spaghetti way long enough and in enough projects you can’t just ditch if they get too messy to actually feel the need to learn those better ways and hence go search for it.

          Also I bet that it’s a lot harder to find advanced tutorials on COBOL on the net from people with actual experience doing it professionally for a couple of year than it is for, say, Python.

      • Malfeasant@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        12 hours ago

        I’ve been surprised multiple times by coworkers who don’t know the significance of midnight January 1st 1970… We support an embedded Linux device, among other things…

    • Zorsith@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      83
      ·
      1 day ago

      I dont even program and i could’ve told them it was probably a placeholder or default value lol “durrrrrr lot of people in this database were born at the exact same time on the same day in the same year that predates electronic databases, gotta be fraud!!1!1!11”

    • Souroak@lemmy.sdf.org
      link
      fedilink
      arrow-up
      38
      ·
      1 day ago

      2016-2020 was the age of too stupid to break everything. Now we’re staring down the barrel of “The files are in the computer?” But the entire US government is the computer.

    • sp3ctr4l@lemmy.zip
      link
      fedilink
      English
      arrow-up
      7
      ·
      19 hours ago

      Not only do many important government systems ultimately rely on or make heavy use of COBOL…

      So do many older private companies.

      Like banks. Account balances, transactions.

      Its actually quite a serious problem that basically nobody who needs to take seriously actually does.

      Basically no one is taught COBOL anymore, but a huge amount of code that undergirds much of what we consider ‘modernity’ is written in COBOL, and all the older folks that actually know COBOL are retiring.

      We’re gonna hit a point where the COBOL parts of a system to be altered or maintained, and … there just isn’t anyone who actually knows how to do it.

      • AA5B@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        12 hours ago

        Yeah, I’ve been tempted to try this route, but you’re really pigeonholing yourself. Even if there’s always wrk, I can’t imagine only working with cobol the rest of my career.

        Even worse, the places still using this are very heavy in process, with many undocumented dependencies among many undocumented workflows and business processes. Modernizing COBOL is not a coding problem: it’s a mammoth project management, coordination, and paperwork project that also has a little bit of coding. And its not like you can write clean code, you need to write essentially the same tangled mess of accumulated changes over decades because there’s no way of knowing everything that might break

        • sp3ctr4l@lemmy.zip
          link
          fedilink
          English
          arrow-up
          3
          ·
          edit-2
          11 hours ago

          I hereby nominate you to be the new head of the SSA.

          You get it, exactly.

          COBOL itself is a fairly minor part of the problem, the real problem is the retiring COBOL coders are the only ones with enough institutional knowledge, broad and specific, to keep the engine from grenading and fucking wheels from coming off the car when it hits a bad enough pothole.

          But management and C Suite are apparently homo superior, fully confident that none of that really matters, they’ll just keep throwing money at it until its fixed, and failing that, laying off everyone, who care in the end, they get a golden parachute when it all burns, everyone else can FOAD.

      • Fashim@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        14 hours ago

        My understanding is that even if you learn COBOL, you’d struggle to understand legacy systems since they have their quirks from a bygone era

        • sp3ctr4l@lemmy.zip
          link
          fedilink
          English
          arrow-up
          3
          ·
          edit-2
          14 hours ago

          That is absolutely true as well… though this may be just a personal anecdote, it seems to me that the few COBOL coders I once knew would be amongst the most likely to keep a solid documentation of their own systems.

          The problem with that though, is that their bosses are almost always too stupid to ask them for such documentation before they leave/retire, or to bother to preserve it when the exiting COBOL programmer gives it to them, because coding is magic to them, and you’re either a good magician that can do the thing, or you’re not.

          Upper management / C Suite seems to never understand why the term software engineer was/is used.

    • iAvicenna@lemmy.world
      link
      fedilink
      arrow-up
      19
      ·
      1 day ago

      He would dismiss COBOL and try to prove that he is a super cool geek with a deep knowledge of DnD and gaming culture. So more like:

      “COBOL? Such a language doesn’t even exist unless you think Kobolds are real! Hahaha”

  • Kusimulkku@lemm.ee
    link
    fedilink
    arrow-up
    17
    ·
    23 hours ago

    They also found that there’s people over 200, so that default date thing doesn’t really explain it all.

    • ansiz@lemmy.world
      link
      fedilink
      English
      arrow-up
      50
      ·
      23 hours ago

      It’s because that explanation isn’t correct. The real deal is you just have entries without a death date, so if you ran a query this get super old ages as a result.

      Note that isn’t a database of payments or even people eligible for them, just a listing of ‘everyone’ with a SSN. There is a separate master death index. In the old days, wild west kind of stuff people would disappear so the death date would never get entered. Modern days every morgue and funeral home has to legally notify SS when someone dies, there is a specific form and major hell to pay if you don’t do it.

      • BakerBagel@midwest.social
        link
        fedilink
        arrow-up
        8
        ·
        21 hours ago

        Social Security numbers were first issued in 1937. You would have need someone to be over 110 in 1937 to have an age over 200. I think that it’s a combination of birthdays entered wrong plus no official death date.

        • ansiz@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          12 hours ago

          I think those are related to survivor benefits. Like an old man marrying a young woman in the 40’s. Like the civil war vets marrying woman in the 20th century. The last civil war widow was getting benefits until she died in 2020. But still the same basic issue.

          But in that case the old man isn’t getting benefits but just is needed as a reference for the person actually getting them.

        • Madison420@lemmy.world
          link
          fedilink
          arrow-up
          16
          ·
          21 hours ago

          Wouldn’t matter anyway the ss admin automatically stops pay and initiates audit for anything over 115.

    • I_Has_A_Hat@lemmy.world
      link
      fedilink
      arrow-up
      40
      ·
      edit-2
      23 hours ago

      Also a lot of people between 110 and 150, so I’m sure there is a larger answer.

      However, Social Security cuts off at 115, and they supposedly found like 10 million people older than that. Considering there are only ~50m people on Social Security, and the database they were searching wasn’t even about current recipients, most people would conclude that there is likely an error in data, rather than immediately jump to fraud. Of course, ketamine is a hell of a drug and Elon is not most people.

      • Kusimulkku@lemm.ee
        link
        fedilink
        arrow-up
        5
        ·
        22 hours ago

        It’s definitely still concerning if the database has a large number of errors. But systematic fraud would be much worse ofc.

        • funkless_eck@sh.itjust.works
          link
          fedilink
          arrow-up
          13
          ·
          22 hours ago

          the database doesn’t have to necessarily be accurate if there’s other checks - a flag for test data, a system that checks the person is real against another database before dispersing funds etc

          • JackbyDev@programming.dev
            link
            fedilink
            English
            arrow-up
            4
            ·
            15 hours ago

            It’s really funny to me that everyone thinks every database is always 100% correct. What a magical world it would be!

          • monotremata@lemmy.ca
            link
            fedilink
            English
            arrow-up
            1
            ·
            14 hours ago

            A minor grammar point: in this context, the word is actually “disbursing,” from the same root as “bursar,” a job title you may have encountered in school administrations. “Disbursing” means “paying out from a fund.” “Dispersing” means “scattering” or “causing to dissipate.” So the old system was disbursing funds. The new system will be dispersing funds.

            • JcbAzPx@lemmy.world
              link
              fedilink
              English
              arrow-up
              5
              ·
              18 hours ago

              Fixing an archival dataset that doesn’t even pertain to people actively receiving benefits is so far down the list of priorities as to be a criminal misuse if resources.

            • Lyrl@lemm.ee
              link
              fedilink
              English
              arrow-up
              9
              ·
              edit-2
              21 hours ago

              Someone with the skills and knowledge to clean up 150-year old typographical errors in one particular table in the Social Security database system would probably provide more benefit to the taxpayers covering their salary by doing some other task.

              • AA5B@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                12 hours ago

                How would you clean up that data? If they didn’t have the correct data in the first place, where do you expect to find it decades later?

                Sometime real life is just bad data and that’s not necessarily a problem. All of the business logic and agency process around not spending money for those situations is probably one of the difficult areas blocking modernization or shrinkage. Bad data is reality. How you handle it shows how experienced you are

              • Kusimulkku@lemm.ee
                link
                fedilink
                arrow-up
                1
                ·
                20 hours ago

                It might be better to move to a new database at this point rather than trying to fix the existing one. It won’t give immediate benefits but could be helpful down the line.

                • SabinStargem@lemmings.world
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  18 hours ago

                  I am hoping California ditches SSN and other identifiers from the US Treasury. That information is no longer safe, so we need a fresh database that is secure from DOGE fuckery, among many other hostile actors.

      • Thorry84@feddit.nl
        link
        fedilink
        arrow-up
        12
        ·
        1 day ago

        In my experience in the legacy world we have the isHighDate function which not only checks the constant, but also 5 other edge cases where the value isn’t HIGH_DATE but should be treated as if it is.

  • JoYo 🇺🇸@lemmy.ml
    link
    fedilink
    English
    arrow-up
    56
    ·
    1 day ago

    More specifically, they didn’t find anyone receiving social security who were 150 years old because they didn’t prove that they were receiving anything as that’s not the purpose of that database.