Isn’t “embarrassing and dangerous” their whole strategy?
https://dev.to/mdchaney/cobol-dates-may-20-1875-and-disinformation-5ggh
- There is no “date” data type in COBOL. Dates are stored however the programmer wants, but usually numeric character strings
- There’s no “default” date, even if there were such a data type
- 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.
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!”
The question is, how do you not know the age of a recipient? I feel like that’s kinda required to know, no?
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.
Ah, well that makes sense. Thanks for clarifying.
learn Cobol you uneducated teenagers
SUBTRACT DATE FROM YEAR GIVING AGE.
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.
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.
How dare you question the wisdom of Big Balls and his peers
I’m gen z, I use Vim, and I voted for Kamala. Guess all those VS Code kids voted Trump.
More of a late gen z, gen alpha thing.
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.
Yeah that’s not the defense you think it is.
How much experience do you have in this? Talk is cheap
You guys love the appeal to authority fallacy. You don’t need to be an expert to know you shouldn’t still be using programs written in cobol.
If relying on any knowledge is bad, then why should we believe what you say? That’s an appeal to authority
I didn’t say any knowledge. I’m saying if you reject what someone says only because they don’t have some arbitrary experience that you require. That’s an appeal to authority
Why should anyone listen to what you have to say? Can you give a reason without an appeal to authority?
Could you elaborate on why?
You shouldn’t be using cobol in 2025
Lolololol tell that to literally every major bank, I’m sure they’ll get right on it just for you.
Good luck getting musk to pay to update the programs that most of the government uses.
These programs were written in COBOL, and they have had no reason to upgrade things that are still working.
Yeah having incorrect info isn’t a reason to fix it, your right
This is the part everyone is missing. Real life is messy and sloppy and incomplete. Real life has bad data. All the time, especially when you’re trying to match 100 year old records. Not handling bad data s a problem of inexperience, regardless what technology you use. Announcing it as fraud, is just being an ignorant asshole.
That being said, if Musk is willing to put out the billions of dollars it would cost to modernize, that would be great! But it still has to handle bad data. Maybe musk could add hundreds of millions to the budget to hire enough people to manually confirm all the data from before the records were digitized. Good luck with that
If you want actual proof of this, look at your medical records. And I say this as a healthcare worker. All kinds of nonsense ends up in the chart for a myriad of reasons.
You have to be one of Musk’s adolescent DOGE cronies
You know most people support this. Trump has a positive approval rating. You guys are in the minority
That has no meaningful relation to whether they are competent or not.
How much is Daddy Elon paying you for this sad psyop attempt? Because he should probably be paying you less
They would have to spend on new systems instead of giving tax breaks to corporate welfare queens and the landed gentry.
Money isn’t the issue
Goober, they’re gonna need to spend money on resources migrating away from it.
Elaborate as to what the specific issue is, please.
Yeah, great. Is DOGE going to fix any of that?
Probably
What an incredibly boring troll you are.
Are you actually Elon Musk trying to gaslight all of us?
No
Let me get your point straight, because COBOL is an old language, you believe calling out misinformation that shows the people tasked with “finding corruption and financial mismanagement” are completely unqualified for the job isn’t a “valid defense”?
A valid defense of what? The post doesn’t defend COBOL, it makes no claims regarding the best way to track this data at all. It just points out that the dipshits making the claims of corruption are blatantly wrong.
Then you go on to claim that these same dipshits are going to “probably” address legacy systems? Why would you want someone who can’t understand the legacy system to be in charge of replacing it? That’s a recipe for disaster.
Or to put it another way. Saying the government shouldn’t use COBOL “isn’t the defense (of DOGE) you think it is”.
Yes, it is defending cobol. Otherwise it would say this is bad and needs to be fixed
Lol, bruh… You cant be serious.
Defending COBOL would require a statement to the effect of “COBOL should be kept because X”. Do you see any affirmative statement to that effect? No? Wanna take a guess as to why?
I know you won’t be honest about it in your response, but you know exactly why. Because this post has nothing to do with COBOL being good, bad, or in-between for the task at hand. It’s exclusively about calling out bullshit and misinformation spread by unqualified idiots.
Which brings me back around to the fact that your opinion that “COBOL should be replaced” is not a valid defense of idiots, who don’t understand the systems they are tasked with using, making false claims based on misunderstandings caused by their ignorance.
That’s a delusional answer.
How
The only possible way DOGE would eliminate that code is if the agency doesn’t exist anymore.
…not. probably not. That’s what you meant to say. Right? Right!!!
No
Well don’t worry. You’re allowed to change your mind at any point in time once you realize the mistakes you’ve made regarding the trust and belief you’ve put in these people.
so the huge legacy codebase should be ported to…
and who’s gonna do that? You?
The terrifying answer is that script kiddies will end up porting it to JavaScript and Electron and host it on AWS.
I wanted to write JavaScript first but decided against it :D
This hasn’t been done because no one can do it. It’s because the government sucks at this stuff
It hasn’t been done because that’s a great works project that’s on a scale you’re woefully ignorant to (this is an assumption on my part based on what I can grok of you based on your comments here).
I assure you there is a bevy of skilled developers who would love to modernize the systems they work on but the cost and level of effort is beyond what is politically viable.
If you changed your perspective from “it’s awful and bad and always will be” to “it’s awful and bad and we can make it better, how can I help” things will improve for everyone.
Mate, from reading the comments of this no-brains, he or she doesn’t doesn’t even know how to program in a professional capacity, much less have even the slightest clue of the scope of such a project.
That one is literally a mindless Trump/Elon fan wading into waters way, WAY, WAY beyond his depth.
I didn’t say it wasn’t big
I guarantee you that there are no governments, banks, or businesses older than 15 years that aren’t running some old ass code that’s not getting replaced any time soon.
Again that doesn’t make it ok
Code is not a physical thing that spoils with age.
All that backs that sentence of yours is your uninformed opinion.
There are tons of IT systems in the government that have been running the same programming for 30+ years but if it isn’t broke it doesn’t get touched.
Source: Use mainframe emulators often to perform routine tasks in government HR systems.
Yeah that doesn’t make it ok
The code may be old but the hardware gets updated. I don’t know if they’re using modern tools but the language also gets updated.
It alll comes down to budget: who wants to spend the money to modernize stuff that still works? Iss Musk willing to invest in that?
Just in case you didn’t know, the code is old, but the hardware still gets updates. And when it comes to batch transactions and network speed, mainframes still do the job reliably well. Plus, they are not easy to hack, because few understand them, not to mention the decades of security updates.
Ok great, still didn’t make it ok
Mainframe does what it does very well, and that makes it okay.
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.
Found the link to the SSA page describing the policy which took effect in 2015.
115 sounds too late imo, payments should need manual verification way earlier
Too bad he let go of all the employees that would be responsible for that manual verification.
There are other verification procedures in place as well. This is something like a failsafe.
They’re going to need lots more people going around talking to old people because you don’t want to rely on public records
If that’s what you want they should be staffing up instead of firing.
Absolutely, DOGE is obviously committing crimes doing what they are doing
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.
Cant wait till 2038!
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?
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
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?
I expect governments to set up own time servers and reset it to 1970 before upgrading their old Win XP machines.
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
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.
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.
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
These are the same interns that are pushing code in production, right?
They also found that there’s people over 200, so that default date thing doesn’t really explain it all.
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.
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.
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.
Wouldn’t matter anyway the ss admin automatically stops pay and initiates audit for anything over 115.
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, most people would conclude that there is 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.
Lol why bring drugs into this? Specifically ketamine?
It’s definitely still concerning if the database has a large number of errors. But systematic fraud would be much worse ofc.
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
It’s really funny to me that everyone thinks every database is always 100% correct. What a magical world it would be!
That’s true. Would be better if it was though.
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.
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.
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.
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.
Or it could cost a fortune and fuck a lot of other processes up.
tbf it’s only embarrassing if you’re capable of embarrassment.
But but it’s BREAKING! With a red light emoji!
Removed by mod
The response is wrong. I remember reading an article that disproved it and explained the actual reason. However I forgot the actual reason.
COBOL doesn’t have a date type. And there were “people” in that “list” that weren’t just 150 years old, and they varied in ages.
The real answer is that the list that they’re saying is people getting social security, isn’t the list of people getting paid, just lists of random ages in the database, which ultimately means nothing.
As someone who is working on a project of recreating an enterprise application in a modern tech stack, the legacy code is hard to understand too.
We have something similar in that a ClaimClosedDate is defaulted to 01/01/1900 and if it has that date it means it’s not closed whereas now that would be a nullable field.