- Paying with a credit card.
- Going to the emergency room.
- Adjusting your 401k.
- Using your insurance card at the dentist.
- Shopping around for the best car insurance.
- A BNSF train pulling a Union Pacific coal car.
- Transferring money between banks.
- Filling a prescription.
All the above industries are billion dollar players in our economy. All of the above industries write new COBOL and mainframe assembler programs. I’m not making this up, I work in the last industry, and I’ve interviewed and interned in the others.
The question to ask is: What are the economic and social forces keeping the COBOL code base alive? Seeking to supplant a long-surviving language in a particular niche without first asking this question is a fool's errand.
> The question to ask is: What are the economic and social forces keeping the COBOL code base alive?
Do you want to be the person who volunteers to rewrite those codebases into $HOT_NEW_LANGUAGE (or even $BORING_STABLE_LANGUAGE) and be on the hook for ensuring that your rewrite exactly replicates the behavior of the old system? Introducing bugs--or even inadvertently fixing bugs--during the rewrite is absolutely not allowed.
Let's say, for concreteness, that each one of those tasks above is a multi-million line codebase. Think about what that would cost, both in person-years and in monetary terms. (Sure, you can write 10x less code...but half a million to a million lines of Python is still a lot of Python.) Remember, you probably have to have a fairly exhaustive specification of how the original system worked before you embark on the rewrite; just getting that specification together is likely to be tilting toward person-years of work.
Do you want to be the manager who goes around to talk to all the involved stakeholders and explains to them why this is a worthwhile use of their systems, time, and money? ("We'll have an easier time recruiting people to work on the system," probably doesn't fly; neither does, "$LANGUAGE is cleaner/faster/more readable.") What do you tell them when they ask about possible issues during the transition? And so on and so forth.
The question to ask is: What are the economic and social forces keeping the COBOL code base alive? Seeking to supplant a long-surviving language in a particular niche without first asking this question is a fool's errand.