250 points
*

Ah yes, a classic tale…

“We’re going to take this perfectly efficient and functional COBOL code base and rewrite it in Java! And we’ll do it in a few months!”

So many more competent people and organizations than them have already tried this and spectacularly crashed and burned. There are literal case studies on these types of failed endeavors.

I bet they’ll do it in Waterfall too.

It’s interesting. If they use Grok, this could well be the deathknell for vibe programming (at least for now). It’s just fucking tragic that their hubris will cause grief and pain to so many Americans - and cost the lives of more than a few.

Edit: Fixed some typos.

permalink
report
reply
81 points

Jokes aside, nothing wrong with rewriting in Java. It is well-suited for this kind of thing.

Rewriting it in anything without fully understanding the original code (the fact they think 150yo are collecting benefits tells me they don’t) is the biggest mistake here. I own codebases much smaller than the SSA code and there are still things I don’t fully understand about it AND I’ve caused outages because of it.

permalink
report
parent
reply
56 points

No. Java is not suited for this. This code runs on mainframes not some x86 shitbox cluster of dell blades. They literally could not purchase the hardware needed to switch to java in the timeline given. I get what you’re trying to say but in this case Java is a hard no.

permalink
report
parent
reply
29 points
*

Uh, Java is specifically supported by IBM in the Power and Z ISA, and they have both their own distribution, and guides for writing Java programs for mainframes in particular.

This shouldn’t be a surprise, because after Cobol, Java is the most enterprise language that has ever enterprised.

permalink
report
parent
reply
27 points

Non programmer but skilled with computers type guy here: what makes Java well suited for this?

This is probably an incorrect prejudice of mine, but I always thought those old languages are simpler and thus faster. Didn’t people used to rip on Java for being inefficient and too abstracted?

Last language I had any experience with was C++ in high school programming class in the early 2000s, so I’m very ignorant of anything modern.

permalink
report
parent
reply
33 points

Java can be pretty damn efficient for long running processes because it optimizes at runtime. It also can use new hardware features (like cpu instructions) without having to compile for specific platforms so in practice it gets a boost there. Honestly, the worst thing about Java is the weird corporate ecosystem that produces factoryfactory and other overengineered esoteric weirdness. It can also do FFI with anything that can bind via c ABI so if some part of the program needed some hand optimized code like something from BLAS it could be done that way.

All that to say it doesn’t matter what language they use anyway, because rewriting from scratch with a short timeline is an insane thing to do that never works.

permalink
report
parent
reply
12 points

The way Java is practically written, most of the overhead (read: inefficient slowdown) happens on load time, rather than in the middle of execution. The amount of speedup in hardware since the early 2000s has also definitely made programmers less worried about smaller inefficiencies.

Languages like Python or JavaScript have a lot more overhead while they’re running, and are less well-suited to running a server that needs to respond quickly, but certainly can do the job well enough, if a bit worse compared to something like Java/C++/Rust. I suspect this is basically what they meant by Java being well-suited.

permalink
report
parent
reply
11 points

I am a programmer but I’m not sure why people think Java is suited for anything, especially a system so sensitive to bugs. It’s so hard to write high quality readable code in Java. Everything is way more clunky, and verbose than it needs to be.

Some major improvements were made with versions 17+ but still, it feels like walking through mud.

It’s a language from the 1990s for the 1990s.

Btw the performance is actually pretty good in Java, the old reputation for slowness is entirely undeserved today.

permalink
report
parent
reply
3 points

Other than hardware issues, which someone else mentioned, it has a lot of enterprise-grade functionality that make it more secure and auditable than a lot of other languages. And despite, or maybe because of, its large memory footprint it’s actually faster than most languages.

I totally get any hate about writing Java though. It is a verbose language. Using Kotlin instead helps with that.

permalink
report
parent
reply
1 point

I always thought those old languages are simpler and thus faster

They’re neither necessarily simpler nor faster.

COBOL is simple, but outside its sweet spot, it can’t do much. That sweet spot is high volumes of relatively trivial calculations, coded by non-superstar coders. It’s moderately efficient because it doesn’t do all that much.

Of the oldest languages still in use, FORTRAN has gone through a few generations of incremental improvements, and for complex mathematical calculations, it can be faster than shit off a hot shovel. But again, it’s limited in scope, its data typing is lousy, its general-purpose programming capabilities are poor, and any integration you do with other systems is going to be a vision of hell. I still deal with a FORTRAN codebase on my job, there are some situations where it’s still one of the least-bad options.

Then, the last of the surviving languages of that vintage is Lisp. It can be insanely fast, but despite its simple syntax and semantics, nobody would call Lisp programming simple. Accounting-system coders would recoil in horror.

permalink
report
parent
reply
50 points

permalink
report
parent
reply
20 points

I’ve worked on these “cost saving” government rewrites before. The problem is getting decades of domain logic and behavior down to where people can be productive. It takes a lot of care and nuance to do this well.

Since these nazi pea brains can’t even secure a db properly I have my doubts they’ll do this successfully.

permalink
report
parent
reply
9 points
*

well the new ruleset they will implement is quite simple:

IF user wants money AND user is rich THEN accept request ELSE fuck off

the tricky part is to say fuck off in a subtle enough way their maga shills think it’s perfectly normal in order to save the nation blah blah blah

permalink
report
parent
reply
2 points

Not just domain logic. The implementation logic is often weird too. Cobol systems have crash/restart behaviour and other obscure semantics that often end up being used in anger; it’s like using exceptions for control flow, but exceedingly obscure and unfortunately (from what I’ve seen of production cobol) a “common trick” in lots of real-world deployments.

permalink
report
parent
reply
14 points

screams in quality assurance

permalink
report
parent
reply
14 points

Functional, yes. But rarely are these sorts of things efficient. They’re covered in decades of cruft and workarounds.

Which just makes them that much harder to port to a different language. Especially by some 19 year old who goes by “Big Balls”

permalink
report
parent
reply
32 points

My company actually wrote their flagship software in COBOL starting in the 80s, and we’re only now six years into rewriting everything in a more modern language with probably four years to go.

I can’t imagine trying to start such a project like rewriting all of Social Security and thinking it will take months. You have to be a special kind of fatuous to unironically think that.

permalink
report
parent
reply
13 points

I was briefly employed at a firm that maintained the sales commission software for a large telecom firm.

It was 1.5 million lines of VB6, though VB8 was already three years old. Nobody knew all of it, so they couldn’t possibly rewrite it to handle all the edge cases and special incentives we kept having to add.

Except maybe the lone QA person, who would frequently begin sobbing at her desk. And we could all hear it because it was an open plan office and we weren’t allowed to wear headphones.

That job was so bad I quit and began freelancing.

permalink
report
parent
reply
10 points

Similarly, my company are 4 years into a rewrite of a cobol mainframe system much simpler than Social Security. Which was going to “take a year” there’s at least 5 years left.

I know the UK benefits system took well over 12 years to build with an programming workforce of over 2000 and I imagine it’s simpler having to support a population one fifth the size of the US.

permalink
report
parent
reply
9 points

The kind that thinks full self driving is two years away, perhaps?

permalink
report
parent
reply
5 points
*

He can’t be this delusional, right? It is almost like he is just trying to inflict damage?

permalink
report
parent
reply
3 points

The kind that thinks all those edge cases don’t matter and if they don’t get payments it’s just another example of “waste, fraud, and abuse.”

permalink
report
parent
reply
13 points

It’s worth noting that one of those organizations is IBM. Mostly relevant because they’re the ones that originally built a lot of that cobol, the mainframes it runs on, and even the compilers that compiled it.
They’re basically the people you would expect to be able to do it, and they pretty quickly determined that the cost of a rewrite and handling all the downstream bugs and quirks would exceed the ongoing maintenance cost of just training new cobol developers.

My dad was a cobol developer (rather, a pascal developer using a compiler that transpiled to cobol which was then linked with the cobol libraries and recompiled for the mainframe), and before he retired they decided to try to replace everything with c#. Evidently a year later their system still took a week to run the nightly reports and they had rehired his former coworkers at exorbitant contractor rates.

permalink
report
parent
reply
12 points

I bet they’ll do it in Waterfall too.

Nah B. This will be Extreme Agile XP with testing exclusively in Prod. Xitter will be the code repository.

permalink
report
parent
reply
8 points

Pair programming with Grok.

Spotty DOGE intern developer: “what’s a for loop?”

Grok: “Look it up yourself, noob! Holy shit do I hate Elon Musk in every fucking way!”

permalink
report
parent
reply
1 point

I’d think they’d put the commits onto the blockchain.

permalink
report
parent
reply
9 points

What’s “vibe programming”?

permalink
report
parent
reply
50 points
*

Stupid term for when people who don’t know how to program ask AI to generate code for them which they have no expertise to actually validate.

Edit: It took 20 minutes, but I finally found the poster child for vibe coding (time well spent):

permalink
report
parent
reply
1 point

The best commercial models did dumb stuff yesterday and I bet they’ll still do dumb stuff tomorrow

permalink
report
parent
reply
1 point

Of course Leo has a fish in his PFP

permalink
report
parent
reply
12 points

It’s when people try to have LLM’s generate code and then try to assemble the pieces produced into semi-functional, usually really bad, software I think.

permalink
report
parent
reply
8 points

And I think “vibe” means that they have no experience with programming so they can’t read the code they copy.

permalink
report
parent
reply
3 points

It’s understanding code like chatgpt helps me understand Hungarian.

permalink
report
parent
reply
8 points

Bold of you to assume they’ll use Java and not some obscure language picked based on the need to pad their resumes.

permalink
report
parent
reply
6 points

We all know it’s going to be nodejs, backed up by mongodb. This is because LOC on the commits can be maximized for minimal effort, and it will need to be rewritten every 2-3 years.

permalink
report
parent
reply
1 point

In my shop, some of the managers were OK with teams using server-side node, with Mongo.

Those managers are now gone, and one of my jobs was to lifecycle that shit out. Just being near npm was enough to shorten my life by several years.

Mongo’s actually a really nice choice for some use cases. It just wasn’t good for what we were trying to use it for. Its replacement was Postgres, one DB for OLTP-like processing and another for OLAP. Works like a champ, and the improved analytics mean we’ve been able to tune the hell out of that sucker.

permalink
report
parent
reply
5 points

They’re not going to use Java, it’s going to be typescript.

permalink
report
parent
reply
1 point

Or Rust

permalink
report
parent
reply
6 points

You think those script kiddies know Rust?

permalink
report
parent
reply
2 points

Rust is not a language I’d use for financial apps, but it’s not a bad language. So I doubt that they’d use it. Musk is of a generation where he’d probably tell them to use PHP. Or if he listens to the twenty-something bros around him, maybe it’d be Dart, which is another decent language that’s not well suited to the problem domain.

permalink
report
parent
reply
128 points

There are only two reasons softwares goes for decades without being replaced:

  1. It’s so unimportant that nobody uses it
  2. It’s so important that the last major bug was squashed 15 years ago
permalink
report
reply
32 points
*

Also : it’s very complex and it happens to work fine for decades.

If one day i write a code project and manage to make it work without any major issues for several decades, there is no way i attemptto rewrite it.

permalink
report
parent
reply
17 points

Yeah, there’s almost 100 years of law, case law and agency regulations built into how this software works. And they fired all the people that knew anything about it.

permalink
report
parent
reply
19 points

But dude, bro, we could put the entire system on the blockchain man, and make it super efficient with an AI backend that will remove all errors bro.

Dude it’s not even written in Rust bro. WTF is this dinosaur shit?

permalink
report
parent
reply
3 points

I don’t think Rust is a bad language for doing same things people do with C++, but with a smaller standard and less legacy.

But yep, that’s the kind of people.

About dinosaur things - I’ve started learning Tcl/Tk and it’s just wonderful.

permalink
report
parent
reply
2 points

Tcl’s small but, in its own weird way, almost perfectly formed. Seeing it mentioned after all those decades raised a smile.

permalink
report
parent
reply
1 point

Oh Rust is great, and it’s on my learning to do list…but its evangelists are annoying as shit.

permalink
report
parent
reply
4 points

It’s so important that the last major bug was squashed 15 years ago

There are no such systems. What instead happens is that the surrounding business process gets distorted to work around the unfixed major bugs. And then, everyone involved retires and nobody knows anymore why things are done that way.

permalink
report
parent
reply
3 points

I know devs like everything to be perfect, but if your business can work around it for 15 years without fixing the bug or replacing the system, I dare say it doesn’t qualify as a major bug.

permalink
report
parent
reply
122 points
*

How this will go:

DOGE: “Okay Grok. Convert this COBOL code into Python.”

Dumb AI: “Certainly! Here you go.”

System crashes and exposes all Americans’ SSNs

DOGE: “Fuckin’ DEI hires…!”

permalink
report
reply
112 points

Australian here.

They are robbing you

permalink
report
reply
45 points

We know. Those of us who are paying attention, anyway.

permalink
report
parent
reply
31 points

🌍🧑‍🚀🔫🧑‍🚀

permalink
report
parent
reply
5 points

Therapist: Stop being silly, you can’t hear emojis.

^ the emojis

permalink
report
parent
reply
1 point

Wait, emojis are audible?

permalink
report
parent
reply
87 points
*

This has the stench of junior engineer all over it. This rewrite will go way over budget and come limping across the finish line late, with more bugs and less features than the system it replaces. I guarantee it.

permalink
report
reply
12 points

AI is going to write it.

permalink
report
parent
reply
3 points

1000% percent. If they can’t even figure out how dates work in COBOL we are getting a vibe coded SSA. Let’s hope they trained LLMs on COBOL or we are cooked.

permalink
report
parent
reply

Technology

!technology@lemmy.world

Create post

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related news or articles.
  3. Be excellent to each other!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, this includes using AI responses and summaries. To ask if your bot can be added please contact a mod.
  9. Check for duplicates before posting, duplicates may be removed
  10. Accounts 7 days and younger will have their posts automatically removed.

Approved Bots


Community stats

  • 18K

    Monthly active users

  • 8.9K

    Posts

  • 228K

    Comments