• ThePowerOfGeek@lemmy.world
    link
    fedilink
    English
    arrow-up
    233
    arrow-down
    1
    ·
    edit-2
    7 months ago

    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.

    • BrianTheeBiscuiteer@lemmy.world
      link
      fedilink
      English
      arrow-up
      84
      arrow-down
      8
      ·
      7 months ago

      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.

      • deranger@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        23
        ·
        7 months ago

        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.

        • Feyd@programming.dev
          link
          fedilink
          English
          arrow-up
          29
          arrow-down
          2
          ·
          7 months ago

          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.

          • deranger@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            15
            arrow-down
            1
            ·
            7 months ago

            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?

            • BrianTheeBiscuiteer@lemmy.world
              link
              fedilink
              English
              arrow-up
              24
              ·
              7 months ago

              They want to make buttloads of money from a rewrite, and it would cost buttloads to do this. They probably also want things to run like shit and cause misery for retired Americans.

            • jacksilver@lemmy.world
              link
              fedilink
              English
              arrow-up
              13
              ·
              7 months ago

              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.

            • Feyd@programming.dev
              link
              fedilink
              English
              arrow-up
              6
              ·
              7 months ago

              I wouldn’t necessarily agree it needs to be rewritten. Hiring programmers that are willing to work in cobol would certainly be harder than other languages though, because you’ll have a much smaller candidate pool and people would be unlikely to see learning cobol as a good career investment

              • barsoap@lemm.ee
                link
                fedilink
                English
                arrow-up
                16
                ·
                edit-2
                7 months ago

                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”.

                • DerArzt@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  12
                  ·
                  7 months 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.

                • Feyd@programming.dev
                  link
                  fedilink
                  English
                  arrow-up
                  3
                  ·
                  7 months ago

                  Everything that you said is correct, except the prevalence of the career advice. I would bet most people looking for their first job out of school don’t even know COBOL is a language.

                • acchariya@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  7 months ago

                  The attractiveness of learning it was that you could avoid boom and bus cycles of retrenchment and clowns like Elon musk. Unfortunately that isn’t true anymore so I think once the dust settles, finding people willing to specialize in tech like this is going to get real hard.

                • AlligatorBlizzard@sh.itjust.works
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  7 months ago

                  Is that true everywhere or just in the US? I know that, at least a few years ago, a bunch of banking software in the US was still in COBOL but parts of Western Europe were modernizing their banking industry. I’m probably going back to school for computer science in the fall and had been considering trying to learn COBOL in my free time, or learning more Fortran (I have actually taken a programming class with Fortran, but because it was aimed at beginners it didn’t really go in depth, but I bet it’d look good on certain resumes). It’s looking like my future is in Europe somewhere, so I’m keeping that in the back of my mind while making decisions.

            • Feyd@programming.dev
              link
              fedilink
              English
              arrow-up
              1
              ·
              7 months ago

              I wouldn’t assume that Java is only half as fast as C for every workload. It’s probably a lot closer than you think in a lot of real world scenarios.

        • nfh@lemmy.world
          link
          fedilink
          English
          arrow-up
          11
          ·
          7 months ago

          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.

        • flamingo_pinyata@sopuli.xyz
          link
          fedilink
          English
          arrow-up
          12
          arrow-down
          2
          ·
          7 months ago

          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.

          • BrianTheeBiscuiteer@lemmy.world
            link
            fedilink
            English
            arrow-up
            7
            ·
            7 months 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.

            • flamingo_pinyata@sopuli.xyz
              link
              fedilink
              English
              arrow-up
              1
              ·
              7 months ago

              I wish Java was declared deprecated back in 2017 when Kotlin was adopted for Android and supported by Spring. It was the only sensible way forward for JVM. Sure with containerization there’s some debate for the necessity of JVM at all but its GC and runtime optimizations are nice.

              • Mihies@programming.dev
                link
                fedilink
                English
                arrow-up
                1
                ·
                7 months ago

                Java has still an enormous adoption, though. It’d be very self harming making it deprecated. And I don’t think containerization solves majority of cases, perhaps it does it better in backend. So both GC and Java are here with us like forever 🤷‍♂️

        • BrianTheeBiscuiteer@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          ·
          7 months 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.

    • criss_cross@lemmy.world
      link
      fedilink
      English
      arrow-up
      21
      arrow-down
      1
      ·
      7 months ago

      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.

      • britaliope@kourjetez.bzh
        link
        fedilink
        English
        arrow-up
        9
        ·
        edit-2
        7 months 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

      • gedhrel@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 months ago

        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.

    • ricecake@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      13
      ·
      7 months 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.

    • DJKJuicy@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      12
      ·
      7 months ago

      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.

      • ThePowerOfGeek@lemmy.world
        link
        fedilink
        English
        arrow-up
        8
        ·
        7 months ago

        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!”

    • Boomer Humor Doomergod@lemmy.world
      link
      fedilink
      English
      arrow-up
      13
      arrow-down
      1
      ·
      7 months ago

      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”

      • Rikudou_Sage@lemmings.world
        link
        fedilink
        English
        arrow-up
        48
        ·
        edit-2
        7 months ago

        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):

        A screenshot of someone being all smug about not needing engineers because they have written a SaaS app using AI, then a second screenshot of the same person complaining that their app is under attack and they don't know how to fix it

      • golden_zealot@lemmy.ml
        link
        fedilink
        English
        arrow-up
        11
        ·
        7 months ago

        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.

        • Bogasse@lemmy.ml
          link
          fedilink
          English
          arrow-up
          7
          ·
          7 months ago

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

  • kibiz0r@midwest.social
    link
    fedilink
    English
    arrow-up
    122
    arrow-down
    2
    ·
    7 months ago

    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
    • britaliope@kourjetez.bzh
      link
      fedilink
      English
      arrow-up
      29
      ·
      edit-2
      7 months ago

      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.

      • jonne@infosec.pub
        link
        fedilink
        English
        arrow-up
        13
        ·
        7 months ago

        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.

    • EarlGrey@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      19
      ·
      7 months ago

      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?

      • rottingleaf@lemmy.worldBanned
        link
        fedilink
        English
        arrow-up
        3
        ·
        7 months ago

        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.

      • kibiz0r@midwest.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 months ago

        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.

  • AdamBomb@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    82
    ·
    edit-2
    7 months ago

    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.

    • ipkpjersi@lemmy.ml
      link
      fedilink
      English
      arrow-up
      34
      ·
      7 months ago

      Yep, months is a joke, doubly so when talking about tens of millions of lines of code and also COBOL specifically.

      This is going to be a hilarious disaster but not so hilarious when people who need the benefits need them and won’t be able to get them.

      • dryfter@lemm.ee
        link
        fedilink
        English
        arrow-up
        6
        ·
        7 months ago

        I’m on SSDI (and Medicaid and HUD housing) and have been having insane anxiety the last month and a half to the point that I’m wondering if I’ll even get paid in April. I regularly check my SSA account online to make sure my direct deposit is still freaking scheduled. Missing a payment could mess up all of my other benefits as well.

        I know the fuck up is coming, but I don’t know if I can handle another few months hoping they don’t fuck up the migration if they don’t fuck up just paying people first with all that’s been going on.

        I’m pretty sure Im not the only one in this situation who can’t handle the stress of this bullshit.

      • monkeyman512@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 months ago

        To be fair. We assume “months” means less than 2 years. But 10 years can also be “months”, and is probably a more realistic timeline.

        • ipkpjersi@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          7 months ago

          Nobody is referring to 10 years as “months”.

          When you’re talking about multiples of years, it’s going to be called years, not months. They were obviously talking about a short timeline, less than 2 years, likely less than 1 year.

          They have no idea what they’re talking about.

          Like I said, months is a joke.

          • monkeyman512@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            7 months ago

            So was what I said. I was presenting a hypothetical way they justify their ridiculous claims by doing something else ridiculous.

            But conveying tone in text is difficult, so I’m not surprised you missed what I was going for.

    • nova_ad_vitum@lemmy.ca
      link
      fedilink
      English
      arrow-up
      23
      ·
      7 months ago

      Okay but have you ever tried just throwing genAI at the problem and not caring about the consequences?

    • Simulation6@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      1
      ·
      7 months ago

      That is the mother load of all code bases. Probably still some COBOL if not mostly cobol.

    • supersquirrel@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      4
      ·
      7 months ago

      I mean this is a great example of what happens when you put conservative men in power who think they know what they are doing but are just going to loudly, incompetently and incorrectly re-invent the wheel while everyone else suffers from not having an actual practical solution.

    • will@lemm.ee
      link
      fedilink
      English
      arrow-up
      17
      ·
      7 months ago

      Yep, this is it. Show how “broken” it is by breaking it, and enough of the population won’t even notice when it’s “fixed” and they’re only getting 2/3 of what they were before (and are entitled to). Plus grift, etc.

  • Suite404@lemmy.world
    link
    fedilink
    English
    arrow-up
    49
    ·
    7 months ago

    This is like a new programmer coming in to their new job, seeing the code isn’t perfect and saying they could rebuild the entire thing and do it better in a month.

    • oppy1984@lemm.ee
      link
      fedilink
      English
      arrow-up
      19
      arrow-down
      1
      ·
      7 months ago

      I’m sure the doge boys are expert grock vibe coders, it will be fine, they’ve got big ballz on the team, what could possibly go wrong? /s

    • Treczoks@lemmy.world
      link
      fedilink
      English
      arrow-up
      8
      ·
      7 months ago

      I did such a thing, but I had a big advantage: the codebase had been done by people who had never really learned to code, and I was a seasoned programmer with 20 years of experience.

    • rottingleaf@lemmy.worldBanned
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 months ago

      That happens. Even if said new programmer had seen before that IRL the important part of that codebase consists of specific domain area quirks, scarcely documented and understood. They have an advantage in doing something good for the specific stage of that system’s evolution, but a huge disadvantage in knowing what the hell it really does.

    • corsicanguppy@lemmy.ca
      link
      fedilink
      English
      arrow-up
      15
      ·
      7 months ago

      AT BEST it’s gonna be some ridiculous npm svalbard worth of projects in one tree, require all new hardware, and declare bankruptcy on the way. Canada did this with the Phoenix Pay System, except didn’t have ‘efficient’ funding so it only sucked but didn’t die.

  • Crashumbc@lemmy.world
    link
    fedilink
    English
    arrow-up
    47
    ·
    7 months ago

    These comments are completely missing the truth.

    They have zero intention of rebuilding anything, this is just an excuse to destroy SSA …

  • normalexit@lemmy.world
    link
    fedilink
    English
    arrow-up
    44
    ·
    edit-2
    7 months ago

    I’ve worked on teams converting legacy code for most of my life. The planning for something like this would take longer than six months.

    If this proceeds in Trump’s corrupt government, Elon will get the contract, will claim it is too broken to salvage, and will privatize it. The only way this goes anywhere is if Trump and musk stand to gain money, and they stand to gain a lot.

    • PastafARRian@lemmy.world
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      7 months ago

      If they planned a 1 month migration of a small component, 6 months to complete would be pretty lucky imo. Refactoring Legacy Code mentions the 2.0 approach they’re taking. Spoiler alert, it doesn’t work…

  • thebestaquaman@lemmy.world
    link
    fedilink
    English
    arrow-up
    28
    ·
    edit-2
    7 months ago

    This is just another step down “I honestly just can’t comprehend the stupidity of what is going on in the American government”-alley…

    Like… what do they even expect to come of this? Why are they even interested in doing it? Is it just to stir up shit?

    • MisterOwl@lemmy.world
      link
      fedilink
      English
      arrow-up
      55
      ·
      edit-2
      7 months ago

      They are trying to break the government beyond all repair. At that point they’ll say it’s the Democrats that broke it.

      Their cult members will swallow the lie hook line and sinker, and continue to keep them in power. (Side note, this will be made easier by gutting all election oversight as part of the package.)

      Meanwhile, all that tax money we paid into Social Security, SNAP, Medicaid and Medicare, Unemployment insurance… basically any program meant to help people, will flow directly into billionaire’s pockets.

  • FauxLiving@lemmy.world
    link
    fedilink
    English
    arrow-up
    28
    ·
    7 months ago

    They’re really playing with fire here.

    So many MAGA supporters are seniors who are entirely dependent on OASDI. If Trump’s minions break this, we’re going to see torches and pitchforks strapped to electric scooters and golf carts coming out of Florida retirement communities in droves.

      • monkeyman512@lemmy.world
        link
        fedilink
        English
        arrow-up
        6
        ·
        7 months ago

        The reason is that it takes a lot of emotional intelligence and strength to admit that you have been scammed. These people will find it less emotionally painful to deny reality then admit their mistakes.

      • NeonKnight52@lemmy.ca
        link
        fedilink
        English
        arrow-up
        7
        arrow-down
        15
        ·
        7 months ago

        Node.js is a fantastic tool for web servers. Its event loop allows it to rival much lower-level languages in performance while remaining easy to write and maintain. JavaScript has been the most popular programming language for nearly a decade.

        • green@feddit.nl
          link
          fedilink
          English
          arrow-up
          18
          ·
          7 months ago

          Just no man.

          Yes, JavaScript has been the most popular language but it is exclusively because of the front-end. Many companies do not want to pay for separate back-end devs and ask their front-end devs to do it instead. These people (ab)use JS because they’re most comfortable with it and are under crunch; so we end up with the abomination that is back-end JS.

          It is NOT rivaling much lower-level languages; it can’t even rival C#.

          First off, it is interpreted. You are never going to be faster than competently written C, C++, Go, nor Rust. Secondly, the resources it takes to exist makes in a non-option for embedded machines - which Social-Security facilities are all but guaranteed to use.

          Not to mention the horrendous (and insecure) package infrastructure, and under-powered core libraries - it would be the fullest extent disaster.

          The saddest part? The larpers at DOG(shit)E are all but guaranteed to pick the worst tools for the job, over-engineer, and have extremely poor management. Meaning whatever they ship WILL collaspe the system day 1; and all of the people refusing to pay attention will be like “hOw CouLd THis HaPPen”

          • NeonKnight52@lemmy.ca
            link
            fedilink
            English
            arrow-up
            1
            ·
            7 months ago

            I was only responding to the idea that no one should ever use NodeJS, as it’s good as a web server.

            A Honda Civic is a great car for what it’s built for and people know how to drive it. But I wouldn’t use it to haul gravel or drive the Indy 500.