Modder, programmer, and all around tinkerer. Yes, I’m that New Vegas and Deus Ex guy.

You can also find me over at lemmy.sdf.org under the same username. Also kbin.social if it ever comes back from the dead.

  • 0 Posts
  • 16 Comments
Joined 10 months ago
cake
Cake day: December 25th, 2025

help-circle
  • Mostly it’s two things:

    1. COBOL is very good at some specific things that other languages can’t do as well. Not that other languages do them badly, not at all, but COBOL is absurdly efficient for certain operations. You need to do basic math operations on millions of rows of data every minute? COBOL can do that easily. Many other languages can get close to that speed - maybe a few seconds off - but COBOL is often used in environments where a hundred millisecond delay can mean everything breaks. Are there other languages which can match that speed? Absolutely. Are they any of the languages every company wants to upgrade to? No.

    2. COBOL’s best practices are sometimes the literal opposite of what every other language expects, especially when it comes to optimizing code for efficiency. You ever seen Evaluate, COBOL’s equivalent of a switch statement? Rather than being used to Evaluate a variable to check its values, its most commonly used to “EVALUATE TRUE” and then use the WHEN clauses (basically case statements) to check statements or variables that you want to be true. That can be converted to another language directly, yes, but it absolutely will not be efficient best-practices code. Most likely you’re going to need someone - not an AI, not an automated process - to do one-off rewrites to keep the code performance the same. As it is I have never seen any automated tool (LLM or otherwise) convert COBOL without falling victim to this issue.

    There’s also a third issue in that COBOL has some specific minor capabilities that other languages just do NOT, or not to the level of flexibility and efficiency COBOL has. The most common one is COBOL’s “88” picture type (variable) definitions. Think of it like being able to set an automatic evaluation on a variable that returns true if the condition is met, e.g. the variable “05 WS-ERROR-STAT PIC X.” with an 88 of “88 FATAL-ERROR VALUE ‘F’.” would mean you could check “FATAL-ERROR” anywhere in your code to see if the value of WS-ERROR-STAT has been set to “F”. The thing is, this is done basically for free (resource wise) as part of allocation, and furthermore it can be used to get or set, i.e. “SET FATAL-ERROR TO TRUE” will change the value of WS-ERROR-STAT to “F”. You can also use 88s for ranges, e.g. “88 ANY-ERROR VALUES ‘F’ THRU ‘N’.”, though you can’t use them for set operations that way.

    Bottom line: there’s nothing that perfectly recreates its efficiency, the specific way it performs efficiently, and some of its more esoteric capabilities. Anything still running COBOL probably depends HEAVILY on one or all of these things.








  • Despite the apparent speed of advances, AI is a technology that is still in its childhood. It’s as if tech companies found a way to create a 6-year-old out of GPUs and way too goddamn much electricity. If you can overlook the resource usage required, that’s kind of cool.

    The problem is that those same tech companies (and some governments) have decided that they all need their own synthetically created 6-year-old and that they should give it unlimited funding and the ability to make life-changing decisions for everyone else, and anyone who isn’t jumping at the chance to have their life overseen by a machine-generated child with poor impulse control and a propensity to hallucinate is just “getting in the way of progress”.




  • I mean this positively: current AIs come up with the most bizarre, insane shit. Sometimes that’s great: a new approach or perspective when trying to solve a problem or interpret data can be exactly what is required to actually accomplish the task. Other times it’s unhelpful, but often so unhelpful it can be hilarious if the stakes are low-to-nonexistent.

    That said, that’s exactly why they need to not be as ever-present as they are: by human standards they are literally insane, incapable of consistent reasoning and frequently perceiving the world in ways that do not match reality. It’s not accurate to say the technology is in its infancy, but at best it’s in its adolescence, and just like an 8-year-old it should not be put in charge of dangerous things like drone strikes or ambulance dispatch.