you are viewing a single comment's thread
view the rest of the comments
[–] 251 points 2 years ago* (last edited 2 years ago) (78 children)

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.

  • source
  • hideshow 78 child comments
  • [–] 81 points 2 years ago (40 children)

    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.

  • source
  • parent
  • hideshow 40 child comments
  • [–] 56 points 2 years ago (9 children)

    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.

  • source
  • parent
  • hideshow 9 child comments
  • [–] 30 points 2 years ago* (8 children)

    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.

  • source
  • parent
  • hideshow 8 child comments
  • [–] 9 points 2 years ago (7 children)

    How old do you think the mainframes running Social Security are?

  • source
  • parent
  • hideshow 7 child comments
  • [–] 8 points 2 years ago* (3 children)

    Probably a mix of Z systems, that stuff goes back 20-odd years, and even then older code can still run on new Z systems which is something IBM brags about.
    Mainframes aren't old they're just niche technology, and that includes enterprise Java software.

  • source
  • parent
  • hideshow 3 child comments
  • load more comments (3 replies)
  • [–] 27 points 2 years ago (29 children)

    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.

  • source
  • parent
  • hideshow 29 child comments
  • [+] 33 points 2 years ago* (last edited 1 week ago) (18 children)
  • [–] 15 points 2 years ago (15 children)

    Why is there a need to rewrite it at all? Is it because COBOL is basically ancient hieroglyphics to modern programmers thus making it hard to maintain or update?

  • source
  • parent
  • hideshow 15 child comments
  • [–] 14 points 2 years ago (4 children)

    Refactoring a code base is kinda like general maintenance for the application. Over time deprecated features, temp fixes, etc. start to be a lot of the code base. By cleaning things up you can make it more maintainable, efficient, etc.

    That being said, for systems this large you usually fix up parts of it and iterate over time. Trying to do the whole code base is hard cause it's like replacing the engine while the car is in motion.

  • source
  • parent
  • hideshow 4 child comments
  • [+] 6 points 2 years ago* (last edited 1 week ago) (7 children)
  • [–] 16 points 2 years ago* (6 children)

    COBOL is the career advise you hear people give for people who want to make money but don't want to deal with the VC clownshow. COBOL btw is only 13 years older than C and both language's current standard dates to 2023.

    It's at its core a bog-standard procedural language, with some special builtins making it particularly suited to do mainframe stuff. Learning COBOL is no worse a career investment than learning ABAP, or any other language of the bureaucracy. Sure you'll be a career bureaucrat but that's up sufficiently many people's alley, no "move fast and break things", it's "move slowly and keep things running".

  • source
  • parent
  • hideshow 6 child comments
  • [–] 12 points 2 years ago

    The language isn't the problem with COBOL, it's the likelihood that you will be maintaining (not adding to, but maintaining) a software system that may not have any docs and the original implementers are dead. Next, there will be nobody to verify the business rules that are specified in the code. Finally after you make a mistake about a business rule, you will be thrown under the bus.

  • source
  • parent
  • load more comments (5 replies)
  • load more comments (1 reply)
  • load more comments (2 replies)
  • [–] 12 points 2 years ago (1 child)

    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.

  • source
  • parent
  • hideshow 1 child comment
  • load more comments (1 reply)
  • [–] 11 points 2 years ago (5 children)

    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.

  • source
  • parent
  • hideshow 5 child comments
  • [–] 7 points 2 years ago

    It's a verbose language but I don't know if there's any real language that encourages highly readable code beyond low-level syntax. You want to create a God-class in Python with nonsensical variables and 5 levels of nesting? The language won't stop you.

  • source
  • parent
  • load more comments (1 reply)
  • [–] 3 points 2 years ago

    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.

  • source
  • parent
  • load more comments (1 reply)
  • [–] 20 points 2 years ago (2 children)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 9 points 2 years ago*

    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

  • source
  • parent
  • load more comments (1 reply)
  • [–] 14 points 2 years ago (11 children)

    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”

  • source
  • parent
  • hideshow 11 child comments
  • [–] 32 points 2 years ago (10 children)

    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.

  • source
  • parent
  • hideshow 10 child comments
  • [–] 13 points 2 years ago

    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.

  • source
  • parent
  • [–] 10 points 2 years ago

    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.

  • source
  • parent
  • [–] 9 points 2 years ago (2 children)

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

  • source
  • parent
  • hideshow 2 child comments
  • [–] 5 points 2 years ago* (3 children)

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

  • source
  • parent
  • hideshow 3 child comments
  • [–] 6 points 2 years ago*

    He's not delusional (with regard to what he's doing). He wins either way. The government crumbles, he gets to remake it in his image. He fails, he gets to claim he made the government more efficient, and the fact that it's limping along is just the result of "necessary" pruning.

    This is all theater. He doesn't actually care about the outcome or the American people.

  • source
  • parent
  • [–] 5 points 2 years ago*

    He's not dellusional, he just don't have a clue of whathe's talking about and just throw around keywords and try to look smart.

    As longas you're not familiar with the subject it works well.

    remember when he told programers to print some code they wrote previous weeks ? Or when he tried to impress people with his knowledge of PoE2 and Diablo 4 ? Qe has done the same for decades, at spacex and tesla as well.

    It's a known fact that SpaceX have an entire eam of full time people whose job is listening to elon bullshit and being the yesmen so he feels validated, then actual engineers take decisions.

    IIRC there were the same with tesla and for some reason the system stopped working. And then, the cybertruck happened.

  • source
  • parent
  • load more comments (1 reply)
  • [–] 13 points 2 years ago

    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.

  • source
  • parent
  • [–] 12 points 2 years ago (2 children)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • load more comments (1 reply)
  • [–] 9 points 2 years ago (6 children)
  • load more comments (1 reply)
  • [–] 8 points 2 years ago (2 children)

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

  • source
  • parent
  • hideshow 2 child comments