you are viewing a single comment's thread
view the rest of the comments
[–] 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
  • [–] 9 points 2 years ago (3 children)

    refactor is one thing, rewrite everything in a new language is another thing.

  • source
  • parent
  • hideshow 3 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
  • [–] 1 point 2 years ago (1 child)

    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.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 2 years ago

    I'm not enough into that industry to actually give a good estimate, here, but the amount of COBOL systems still up and running is certainly not even close to non-zero, and it's going to stay that way for a while. From what I gather for companies moving away from COBOL is more of a "programmers are hard to find" situation, not "these systems absolutely must be replaced" one. It's well-supported and scaled with their business, as in, in places they're running the same 60 year old code on new mainframes because if there's one thing that IBM mainframes are then it's excessively backwards-compatible.

    As far as the language is concerned: It's not hard, it's just weird, dating back from an age where people thought randomly calling things "divisions" would make businesspeople capable coders. The reason I'm not in that space isn't because of the language but because of the type of software you write there, it's all bookkeeping and representing business procedures, as said: Bureaucracy.

    Also I'm not sure what "modernising" actually meant, there: SEPA instant payment was introduced, meaning that mainframes won't batch up the day's transactions and then talk to each other every night so cross-bank transfers took a day to process, now they're doing it in ten seconds. Most banks already supported instant transfers within their own systems so they should only have had to rewrite the external interface as the rest was already up to the task.

  • source
  • parent
  • [–] 1 point 2 years 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.

  • source
  • parent
  • [–] 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
  • [–] 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
  • [–] 4 points 2 years ago (2 children)

    If it has to be JVM, then Kotlin. Java done properly.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 years ago (1 child)

    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.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 2 years 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 🤷‍♂️

  • source
  • parent
  • [–] 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