I first started this conversation with my girlfriend, she is a tech recruiter and I was joking about the fact that most French banks are struggling nowadays to recruit COBOL programmers to maintain their infrastructures. She immediately laughed at me and would not believe me that this very old programming language is use in the vast majority of French banks and ATMs…
What is Cobol ?
Cobol is a programming language created in 1959. Its name is the acronym of Common Business Oriented Language which reveals its original vocation: to be a common language for programming business applications.
To put in perspective, 1959 was:
- The year USA sent two monkeys into space and they came back alive
- The year the first integrated circuit was developed
- It was the era of so-called mainframe computers, huge machines that only government agencies, universities or large businesses could afford
The average COBOL programmer is 55 yo, and it’s rarely taught anymore :
COBOL code is split into four divisions(identification, environment, data, and procedure) containing a rigid hierarchy of sections, paragraphs and sentences. COBOL programs are used globally in governments and businesses and are running on diverse operating systems such as z/OS, z/VSE, VME, Unix, OpenVMS and Windows.
Why is it still used today ?
In my opinion, it’s only a budgeting problem. Cobol seems to work forever since it was introduced on many bank systems, and most banks don’t want to risk spending billions to switch to a more modern system.
Efforts to rewrite systems in newer languages have proven expensive and problematic, as has the outsourcing of code maintenance. Therefore no one want to take the responsibility of launching the big revolution of any of their infrastructures. It even seems that we would consider teaching cobol again just to maintain existing systems, to make more time before having to switch to another language.
Imagine switching hundreds of thousands of ATMs to a new system… you are at risk of a major paralysis. There are big cost to rewriting and debugging replacement software. When you have software that’s doing basically the same job it was 20 years ago and it’s been in use so long that virtually all the bugs in it have been found, what’s the benefit to just rewriting it in a new language ?
Illustration picture credits Jonathan CooperHire Unsplash