• deranger@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    5
    ·
    28 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
      9
      arrow-down
      1
      ·
      28 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
        3
        ·
        28 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
          3
          ·
          28 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.

        • Feyd@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          28 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
            1
            ·
            edit-2
            28 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
              4
              ·
              28 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
              ·
              27 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.

            • AlligatorBlizzard@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              1
              ·
              27 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.

            • acchariya@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              27 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.

        • jacksilver@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          28 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.

      • futatorius@lemm.ee
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        27 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?

    • nfh@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      28 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.

    • flamingo_pinyata@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      28 days 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
        2
        ·
        28 days 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.