There are still a bazillion lines of COBOL code out there doing mission-critical jobs, like airline reservations, ATM transactions, finance and commerce in general, and state and federal government systems. COBOL is not going away anytime soon. Nor is it obsolete. Lots of it does need to be updated though.
Here’s the problem. Old COBOL code, like any old code, is often a rat’s nest of patches, workarounds, hacks, and if actual documentation exists, it is a rare and wonderful treat. This is not the fault of COBOL. This is what happens when code hangs around for decades. It gets updated and added onto by legions of programmers with the result no one quite knows how it works. I do this for a living, converting DOS database programs written in the 1990’s to Windows and have never seen a Programmer’s Guide for these applications, because such guides don’t exist. The code is rarely internally documented. This is for small systems, 20-40 users. Now, imagine trying to convert / update a fifty year old COBOL system with thousands of users…
“Think COBOL is dead? About 95 percent of ATM swipes use COBOL code, Reuters reported in April, and the 58-year-old language even powers 80 percent of in-person transactions. In fact, Reuters calculates that there’s still 220 billion lines of COBOL code currently being used in production today, and that every day, COBOL systems handle $3 trillion in commerce.
In a March thread on Hacker News, someone described learning COBOL as “like swallowing a barbed cube-shaped pill,” lamenting the decades-old legacy code “swamped with technical debt…modified, extended, updated, moved to new hardware over and over… Documentation, if any, is hopelessly out of date.”