Ask HN: Why did people switch from COBOL to newer languages?
I realize COBOL is still alive and kicking, and there are a lot of banking jobs that still use it. It's probably much better than most people give it credit for.
However, what are the reason people mostly stopped building greenfield projects in it?
12 comments
[ 4.0 ms ] story [ 34.4 ms ] threadI am not sure why C took over from Basic. Perhaps it had something to do with speed or with control. I don't know if the same reasons would apply to Cobol.
When microcomputers started being powerful enough, there was little pressure to port COBOL code because existing COBOL source code (mostly) was closed and mostly ran batch or networked programs (online transaction processing is the ‘AWS lambda’ of the 1960s) that nobody was interested in.
Also, (wild idea, but may have some truth in it) VisiCalc may have allowed accountants to implement what they wanted from those COBOL programs.
Finally, one could argue people didn’t stop creating COBOL projects. It’s just that new programmers, growing up using microcomputers, never started creating them, and those ‘new’ programmers soon hugely outnumbered ‘old’ programmers.
We tend to ignore the human side of the tecnology business. In fact young people usually wants to change the word, at least to find a pleace in the world for them.
There are a lot of support and maintenance positions available to junior developers, with a huge rotation because once they've learnt enough they want to build stuff.
COBOL might be a proven, old, technology... which means maintenance is important. New stuff must be build with a lot of legacy in mind, and you'll inherit legacy mistakes that worked and cannot be fixed unless you overhaul a huge amount of code.
That's not even sexy enough for senior, gray-haired developers; but helps pay the bills.
Banks and other big institutions continued using it (and many still use it) due to inertia. Even as they migrated from mainframes, but often by virtualizing them rather than outright replacing them.
Offices without that inertia introduced information systems when someone bought an inexpensive (relatively) machine and wrote a C or BASIC or other program on it to handle expense reports and other things that the corporate users used mainframes (with COBOL) for.
Mainframes required deliberate intent to purchase and use. They cost too much and required a full, proper, division. Local microcomputers within the corporate division required no cross-division coordination, and became "simple" line items in their annual or quarterly budgets.
Eventually companies start centralizing IT again, but by that time their software is all written in Java, C, C++, Perl, and other things so they build up server farms aimed at running that, not at running COBOL.
Why no greenfield COBOL projects? Because we don't have enough developers to do that, and deployment would be a pain. The infrastructure for deploying COBOL isn't present. Make an AWS for COBOL, and maybe people will use it? Probably not though. Also, no one knows it and the language has no compelling features to draw in new users.
It makes reports really well, but so does Perl and Python. It doesn't handle numerical work as well as Fortran (for those caring about performance) or numpy (for those not). And it has a strong cultural bias against it at this point.