I agree with your main point, although I think your example of COBOL being used to this day in financial institutions is actually the opposite problem. The guys that originally developed that shit were damn good programmers, but they were severely constrained by the available hardware, limitations of the language, etc. So they had to get really clever in order to make these massive, complicated systems work. In my experience, those really old legacy systems tend to be rock solid with near 100% uptime and almost no errors. They’ve never been rewritten because doing so would be a multi-year effort costing millions of dollars, and the end result would be a system that is most likely slower, buggier, and has less functionality.
TLDR: The old COBOL systems are unmaintainable messes not because of incompetent developers, but because the limitations of the available technology when they were originally developed forced a bunch of really good devs to have to get extremely creative and hacky with their solutions.
Good correction, and I definitely didn’t mean to suggest those programmers were unskilled. In their case, and like you said, the maintainability issues were often a result of technical limitations.
Even if the original developers weren’t rock stars, the codebase was feature-complete in the 80s or earlier and they’ve spent the decades since then eliminating nearly every single bug.
The real issue is that it’s expensive to add new features compared to a modern codebase , and it’s very difficult to find COBOL programmers in 2025.
Eventually a bank is going to take the gamble and rewrite everything in a modern language, and designed with modern tech in mind. But, it’s going to be a huge gamble. And, I can guarantee you, they’re not going to be vibe-coding it.
I agree with your main point, although I think your example of COBOL being used to this day in financial institutions is actually the opposite problem. The guys that originally developed that shit were damn good programmers, but they were severely constrained by the available hardware, limitations of the language, etc. So they had to get really clever in order to make these massive, complicated systems work. In my experience, those really old legacy systems tend to be rock solid with near 100% uptime and almost no errors. They’ve never been rewritten because doing so would be a multi-year effort costing millions of dollars, and the end result would be a system that is most likely slower, buggier, and has less functionality.
TLDR: The old COBOL systems are unmaintainable messes not because of incompetent developers, but because the limitations of the available technology when they were originally developed forced a bunch of really good devs to have to get extremely creative and hacky with their solutions.
Good correction, and I definitely didn’t mean to suggest those programmers were unskilled. In their case, and like you said, the maintainability issues were often a result of technical limitations.
Even if the original developers weren’t rock stars, the codebase was feature-complete in the 80s or earlier and they’ve spent the decades since then eliminating nearly every single bug.
The real issue is that it’s expensive to add new features compared to a modern codebase , and it’s very difficult to find COBOL programmers in 2025.
Eventually a bank is going to take the gamble and rewrite everything in a modern language, and designed with modern tech in mind. But, it’s going to be a huge gamble. And, I can guarantee you, they’re not going to be vibe-coding it.