Why COBOL Has Stuck Around for All These Years
On April 4, governor Phil Murphy of New Jersey made an unusual call for volunteers during a COVID-19 press conference.
“Not only do we need healthcare workers,” he said, “but given the legacy systems we should add a page for COBOL computer skills.”
He was referring to government sites that connect constituents to services such as unemployment benefits, which had trouble handling the sudden increase in applicants.
“We have systems that are 40-plus-years old,” Murphy said. “There’ll be lots of post-mortems, and one of them on our list will be how the heck did we get here where we literally needed COBOL programmers.”
Many programmers heeded the call. On the Open Mainframe Project forum, thousands of well-meaning COBOL developers offered up their services. But so far, a few weeks after the initial spike in interest, organizations needing COBOL developers have yet to respond to any of the posts.
“There’ll be lots of post-mortems, and one of them on our list will be how the heck did we get here where we literally needed COBOL programmers.”
Many volunteers on the forum seemed confused by the lack of responses. One posted an email he received after contacting the New Jersey COVID-19 response team directly, which thanked him for his generosity but said that the state had “sufficient technical staff to support critical services,” and directed him to a general volunteer-matching site for COVID-19.
In hindsight, it’s not all that surprising that COBOL volunteers aren’t being snatched up to work on government applications. State unemployment websites are large systems, and revamping large systems is not something that can be done overnight. Moreover, the time frames don’t line up: by the time states would be able to vet, onboard and familiarize external developers to the workings of their particular system, the high load on these websites would probably have passed.
It’s generally less risky to leave a stable system alone than to make changes while it’s actively being used — in fact, that’s partly why the COBOL language is still around.
A Brief History of COBOL
COBOL stands for Common Business-Oriented Language, a programming language developed in 1959 with the intention of making computer programming more accessible for businesspeople to do themselves. According to the Concise Encyclopedia of Computer Science, programming languages back then such as FORTRAN were difficult to understand and dependent on the underlying hardware, with different computers like the UNIVAC I and IBM’s scientific computers unable to run the same programs. The designers of COBOL believed a programming language that could be portable across computers and that incorporated more English words would be more widely used.
The plan didn’t work out exactly — even though portability was improved, learning to write in COBOL was still difficult, and computer programming as a skill did not spread to the average businessperson. But including English extensively did make COBOL easier to read, and the language was widely used, including by the government.
Over the years, as the field of computer programming moved on to object-oriented languages like Java and other modern programming languages, it became unusual to find COBOL being taught in college programming classes. Gradually, it seemed, COBOL would simply get phased out.
An Unexpected Reappearance
So it came as a surprise to Grzegorz Jakacki when he began to see demand among companies for COBOL developers in 2018. Jakacki is the founder of Codility, a company that creates a platform for companies to vet the programming skills of remote job candidates. It allows job seekers to do coding exercises to demonstrate their development skills, which lets companies looking to hire for those programming languages find appropriate candidates.
When he first heard about interest among companies for COBOL developers, Jakacki thought it was a fluke. “We were saying to ourselves, ‘This can’t be,’” he said. But the trend continued into 2019.
Many of the companies expressing interest were in the finance sector, while others dealt with government contracts, Jakacki said. Both groups consist of companies that have been around for long enough to have started digitizing back in the 1980s, when COBOL was still going strong.
“We think that this was more of a natural process of workforce replacement,” Jakacki said. “Programmers are needed because there is a kind of need to fill the gap,” as programmers who know COBOL retire from the programming field.
It’s Expensive to Rewrite Existing Applications
Why has such an old language stuck around for so long? Jakacki said that it’s not necessarily as simple as an unwillingness to get with the times. Complex systems written many years ago could normally be very stable, while the work of uplifting could be very expensive and risk breaking essential programs.
“Even banks that are very technologically advanced, they apparently have systems that are running on COBOL,” Jakacki said. “They may have a good reason. They don’t want to break it by touching it.”
For those companies looking to hire COBOL developers to maintain their existing systems, it can be a bit more challenging than usual to find the right person for the job. That’s because unlike modern languages, the COBOL language still suffers from lingering issues of portability, Jakacki said.
“Compared to other languages, like Java, where the language is standardized, this is not the case with COBOL,” he said, explaining that while COBOL spearheaded the move toward standardization across machines, it still has something called “dialects” for different types of computers. The University of Amsterdam lists 13 different dialects of COBOL.
The work of uplifting could be very expensive and risk breaking essential programs.
Setting up COBOL on the Codility platform was more difficult than other languages, said Jakacki, mostly because it was hard to find experts to audit the programming problems Codility creates to screen job applicants. COBOL experts can be expensive, and it can also be difficult to find a diverse group of them.
“In order to remove biases, we have requirements on the backgrounds of these experts. We are trying to create a diverse group of reviewers who do an audit of the test,” he said.
But difficult as COBOL may be to work around in the present day, many of the programming languages used today have it to thank for many of its innovations.
“When you look at programming languages, there is a COBOL line that runs back to 1959,” Jakacki said. “Other languages went extinct, new languages popped up, but COBOL was evolving.”