• normalexit@lemmy.world
    link
    fedilink
    English
    arrow-up
    35
    ·
    edit-2
    3 days 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.

    • misteloct@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      3 days 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…

  • FauxLiving@lemmy.world
    link
    fedilink
    English
    arrow-up
    25
    ·
    3 days 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
        5
        ·
        3 days 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.

    • orcrist@lemm.ee
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      3 days ago

      Yes. They need to move quickly. Public opinion is already shifting against Trump and Musk, and right now they are vulnerable.

  • ThePowerOfGeek@lemmy.world
    link
    fedilink
    English
    arrow-up
    204
    arrow-down
    1
    ·
    edit-2
    4 days 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
      69
      arrow-down
      7
      ·
      4 days 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.

      • digipheonix@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        52
        arrow-down
        11
        ·
        4 days ago

        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.

        • Glitchvid@lemmy.world
          link
          fedilink
          English
          arrow-up
          27
          arrow-down
          2
          ·
          edit-2
          4 days ago

          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.

            • pohart@programming.dev
              link
              fedilink
              English
              arrow-up
              3
              ·
              3 days ago

              Do you have reason to think that? Organizations that use mainframes keep them up-to-date in my experience.

              • digipheonix@lemmy.dbzer0.com
                link
                fedilink
                English
                arrow-up
                1
                ·
                3 days ago

                Chatty government contractors. I imagine some parts are updated but at least 2 years ago there was still a load of legacy hardware kicking for them to speak of

            • Glitchvid@lemmy.world
              link
              fedilink
              English
              arrow-up
              7
              arrow-down
              1
              ·
              edit-2
              4 days ago

              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.

      • deranger@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        22
        ·
        4 days 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
          26
          arrow-down
          2
          ·
          4 days 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
            12
            arrow-down
            1
            ·
            4 days 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
              21
              ·
              4 days 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
              12
              ·
              4 days 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
              5
              ·
              4 days 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
                12
                ·
                edit-2
                4 days 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
                  11
                  ·
                  4 days 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.

                • futatorius@lemm.ee
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  3 days ago

                  Well, the other thing about COBOL is that most people would regard it as a living death to have to deal with it as a day job.

                  And I’ve had interactions with offshore COBOL shops. The ones I worked with were not at all good. You’ll never get 99th-percentile coders to work in that language, unless their only motivation is money.

                • Feyd@programming.dev
                  link
                  fedilink
                  English
                  arrow-up
                  3
                  ·
                  4 days 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
                  ·
                  3 days 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
                  ·
                  4 days 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.

            • futatorius@lemm.ee
              link
              fedilink
              English
              arrow-up
              1
              ·
              3 days ago

              COBOL code, like any code, was written to embody certain business processes, and also to work around the quirks and blind spots of COBOL. And the people who understood those business processes are likely to be dead by now, and any documentation they wrote might be current and correct, or it might not. And very few people under the age of 60 have ever used COBOL in anger. So any legacy replacement project is going to have to encompass a big reverse-engineering effort, including analysis of a code base nobody is familiar with.

              I’m old. A friend of mine is a fair bit older, getting into his late 70s. He knows COBOL but his main area of expertise is OS services, database tuning and assembler on old IBM and Fujitsu iron. Those are critical to keeping those old systems running well. He works half-time, is booked over a year out, and has a jaw-dropping daily rate. He also has a rider: one provision is that they have to tell him where he can smoke on-site, and if the answer is “nowhere,” the deal is off. Also, he won’t schedule any work that conficts with Burning Man, and he looks like a homeless guy. I brought him in on a consulting gig once. He did his bit, including an amazingly effective presentation to the C-levels (despite his profoundly non-executive appearance), and went his merry way. Saved us a fortune. You need people like that in order to have even a remote chance of success, and they’re becoming exceedingly rare. Musk and his kiddies don’t even know what they don’t know.

          • futatorius@lemm.ee
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            3 days ago

            Yeah, Java can run maybe half as fast as equivalently complex C, while being far more maintainable. But to see that kind of performance, you’ll want to use POJOs (plain old Java objects), not that enterprise bullshit. And there are many other optimization techniques that your average Java coder wouldn’t see in their average coding job. I’ve been there, didn’t like it. If I’m going to be dropping down to C for the hot spots, I’d rather use Python.

            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.

            Schedule-driven development by people with no domain knowledge, with poorly understood requirements and life-and-limb-critical outcomes, led by an unpredictable moron. What could go wrong?

            • Feyd@programming.dev
              link
              fedilink
              English
              arrow-up
              1
              ·
              3 days 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
          ·
          4 days 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.

          • futatorius@lemm.ee
            link
            fedilink
            English
            arrow-up
            2
            ·
            3 days ago

            Java can be fast at runtime, but optimization is most effective on frequently-run, repetitive sections of code.

            The slow Java interpreter spin-up time was a big annoyance for use of Java in serverless cloud functions. Now the big cloud providers have ways to minimize that spin-up delay.

        • futatorius@lemm.ee
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 days ago

          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.

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

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

    • DJKJuicy@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      10
      ·
      4 days 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
        7
        ·
        4 days 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!”

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

    • Boomer Humor Doomergod@lemmy.world
      link
      fedilink
      English
      arrow-up
      12
      arrow-down
      1
      ·
      4 days 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”

    • Clent@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      8
      ·
      4 days ago

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

      • acchariya@lemmy.world
        link
        fedilink
        English
        arrow-up
        5
        ·
        3 days ago

        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.

        • futatorius@lemm.ee
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 days ago

          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.

      • golden_zealot@lemmy.ml
        link
        fedilink
        English
        arrow-up
        11
        ·
        4 days 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
          ·
          4 days ago

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

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

    • null_dot@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      17
      arrow-down
      1
      ·
      3 days ago

      It’s not a case of “seeing the code isn’t perfect” but rather, not understanding the myriad problems the code is solving or mitigating.

      I’m reminded of this shitshow:

      https://en.m.wikipedia.org/wiki/2010_Queensland_Health_payroll_system_implementation

      Queensland is a state of about 3m people in Australia. Their health service employs about 100k people. They ended up spending about 900m USD to develop their payroll software and fix the fuck ups it caused.

      I’m an accountant by trade, there’s a classic “techbro does accounting” style of development we see a lot. Like if you hadn’t spent a career learning how complex accounting can be, it would be easy to look at a payroll system and conclude “it’s just a database with some rules”.

    • oppy1984@lemm.ee
      link
      fedilink
      English
      arrow-up
      14
      arrow-down
      1
      ·
      3 days 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
      6
      arrow-down
      1
      ·
      3 days 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.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 days 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.

    • futatorius@lemm.ee
      link
      fedilink
      English
      arrow-up
      11
      arrow-down
      1
      ·
      3 days ago

      Musk would probably think that’s just fine.

      Server-side javascript is an abomination, but there’s more of it around than you might think.

  • samuelazers@lemmy.world
    link
    fedilink
    English
    arrow-up
    21
    ·
    edit-2
    3 days ago

    step 1. rewrite into spaghetti code

    step 2. nobody understands the new code, so the govt has to contract elon musk for code maintenance forever

    step 3. profit

  • ZILtoid1991@lemmy.world
    link
    fedilink
    English
    arrow-up
    15
    ·
    3 days ago

    In theory, it wouldn’t be a necessarily bad idea to port the COBOL code to something more modern, but I cannot trust Muskrat and a few vibe coder youngsters with this task.

    • 800XL@lemmy.world
      link
      fedilink
      English
      arrow-up
      19
      ·
      3 days ago

      Bro. Check it out bro, we’re gonna like make it this dope Electron app, bro. It’ll interface with X, bro and everyone will have to login there to get their money, bro. Don’t worry tho, you’ll get paid in recession-proof Trumpbux crypto currency as long as you claim it in time. But X gets a fee of 60% bro.

      Seriously bro we like hired a bunch of grads that took a one week X created code boot camp that like you know revolved around a language big balls created called “cyber coin purse++”. On second thought bro we’re rewriting it in that. Should be like 2 weeks to rewrite it cuz old people wrote the current code and they’re like old or whatever bro. Like I live in an old person’s basement and they’re just like old, bro.

  • Crashumbc@lemmy.world
    link
    fedilink
    English
    arrow-up
    41
    ·
    4 days ago

    These comments are completely missing the truth.

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

  • PiJiNWiNg@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    54
    ·
    4 days ago

    The first step towards privatizing an industry is eroding public confidence in the existing program. They have absolutely no intention of improving the program, they just want to make it shitty enough that people stop believing in it. Once that happens, 45 will start shilling, and some lucky company will swoop in and take it over.

    Textbook…

    • will@lemm.ee
      link
      fedilink
      English
      arrow-up
      20
      ·
      4 days 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.

      • kilonova@lemm.ee
        link
        fedilink
        English
        arrow-up
        3
        ·
        3 days ago

        When I started at my workplace a few years back, I had to login to lotus notes to obtain some sort of ID code. I’d never heard or seen the software before, but after opening it, I let out an audible “what the fuck is this shit”. Luckily they got rid of it completely a couple of years ago.