I have a friend who works on COBOL for banking. He said he saw someone working at a bank with a fancy new GUI, painfully poking around and trying to get something done. "Ah forget it," they said, closed the modern GUI and went to the old terminal interface. In a couple of seconds, it was done.
I also worked on an ancient terminal interface for a complex service business. It was amazing. Everything was instant, and after a short learning curve, we had incredible power at our fingertips. If I had to do that job on a modern web interface with 4-5 seconds of spinners on every page, productivity would plummet! How often do I stand in front a desk with someone eeking through a more modern system, wondering, what is taking so long?
This. COBOL is actually quite performant given what it has to deal with. To answer the OP’s question: when you have 2M lines of COBOL that processes thousands of medical records or financial transactions per second, is critically important to the business, and essentially never fails, there is absolutely no incentive to ever replace that code. It doesn’t matter if it’s “out of date” or in an uncool language.
Microsoft Windows 3.1. I remember the moment very well.
We went from a focused instantaneous UI in DOS to a paradigm that most people cannot handle...multitasking.
Some have mentioned density but DOS business applications weren't terribly dense. There was only so much screen area and we had conventions for how to use it. The apps would flow between screens much like modern Windows UI or mobile apps. The move to Windows presented users with a slow dense mess. My grandmother could set the screen on fire using Lotus 123 keyboard commands and bang out financial statements all day long. I was maintaining Lotus on her machine for decades after the Windows switch so she could use her keyboard and get shit done.
Quicken was awesome on DOS. We ran our bookkeeping business on Lotus 123 and Quicken for years (1980s-1990s). Productivity crashed after that and never recovered.
It's damn near a crime against humanity that so many talented people are forced to deal with garbage software. Given the orders of magnitude hardware advances of the last few decades, we should be that much faster and more capable. But that's not what we see at all - it takes a special kind of incompetence to make software do even less while increasing the resource burn. You really have to try to do that bad. And we're trying hard. I weep for our industry.
I also worked on an ancient terminal interface for a complex service business. It was amazing. Everything was instant, and after a short learning curve, we had incredible power at our fingertips. If I had to do that job on a modern web interface with 4-5 seconds of spinners on every page, productivity would plummet! How often do I stand in front a desk with someone eeking through a more modern system, wondering, what is taking so long?