> Once you know how to program, learning programming languages is easy. Understanding existing programs is hard. Maintaining existing programs (in the form of what we call refactoring) is the most difficult part, by far.
Static typing, with generics etc means that you can use more proven libraries that are well-understood and not custom/special in each instance.
Immutable data-structures means you can reason about the function being applied without hidden side-effects, accelerating understanding of a new system and limiting unintended consequences, etc.
I worked about a decade in the 90's at a company providing code generation and source analysis tools to (banking, insurance, telco, etc) companies that used Cobol. The language can do everything (I've made Windows and OS/2 GUI programs with it), as can any Turing complete language, but it's not the best. The most I could say about it is that it's like Golang, where you're sort of steered away from over-complicating a program, but with Cobol you still don't have the tools to really simplify it either.
People who don't choose and use better tools are not part of the solution.