Our Government Runs on a 60-Year-Old Coding Language, and Now It’s Falling Apart

Retired engineers are coming to the rescue

Photo: H. Armstrong Roberts/ClassicStock/Getty Images

Over the weekend, New Jersey governor, Phil Murphy, made an unusual public plea during his daily coronavirus briefing: The state was seeking volunteer programmers who know COBOL, a 60-year old programming language that the state’s unemployment benefits system is built on. Like every state across the nation, New Jersey was being flooded with unemployment claims in the wake of the coronavirus pandemic. And New Jersey’s data processing systems were unprepared.

“We literally have a system that is 40-plus years old,” Murphy said.

To COBOL programmers, it was a familiar ask. In times of bureaucratic crisis over the last 50 years, Americans have been faced time and time again with the dusty, dated systems that undergird much of our government, and economy. In response to Y2K, when it was unclear whether the date of the new millennium might cause cascading errors across the entire world’s computing systems, legions of programmers fluent in largely forgotten languages like COBOL were specifically hired to fix government and enterprise code. As a result, Y2K was largely a nonissue.

The scarcity of COBOL programmers has led to increased interest in startups like COBOL Cowboys, made up of older, experienced programmers.

Over 20 years later, much of the state, federal, and banking systems still run on these very same programming languages.

New Jersey isn’t the only state that depends on COBOL. Connecticut’s computer systems for processing unemployment also runs on it, the state’s governor said last week, which is causing weeks-long processing delays. Connecticut and four other states are creating a joint effort to recruit retired COBOL programmers who can update the state software.

The scarcity of COBOL programmers has led to increased interest in startups like COBOL Cowboys, made up of older, experienced programmers who have the know-how to operate these systems.

COBOL debuted in 1960 and was largely used on IBM mainframes for business tasks like accounting. IBM continues to sell mainframes compatible with COBOL.

The Government Accountability Office has repeatedly warned about the use of legacy programming languages for critical systems. In 2019, the GAO issued a report summarizing 10 federal computing systems that were in desperate need of an overhaul. For instance, the Department of Education’s system for processing federal student aid applications was implemented in 1973. It takes 18 contractors to maintain the system, and since it’s written in COBOL, it requires specific hardware and is difficult to integrate with newer software languages.

GAO considers COBOL a legacy language, which means agencies have trouble finding staff that knows how to write the code at all. And when they can, the specialist contractors charge a premium.

It also means that when a system breaks, there might not be somebody there to fix it. And that’s where New Jersey finds itself now, with a sagging system and lack of qualified engineers.

Despite its age, and the fact that so many programmers have moved onto C and Java, COBOL is still a widely used programming language. It’s tried and true, which is partly why it was so widely adopted by banks and governments in the second half of the 20th century.

“I show COBOL programs written in 1960 that you can still compile and run today.”

Today, nearly half the world’s banking systems run on COBOL, according to Reuters, and more than 80% of card-based transactions use the code.

“I show COBOL programs written in 1960 that you can still compile and run today,” says J. Ray Scott, a professor at Carnegie Mellon University, and one of the few professors who still teaches COBOL.

“I would hate to be a bank and have Python, and Python 3 came out and broke everything, and then we have to recompile all our code,” he said.

Scott attributes the lack of COBOL programmers to a number of issues, from the absence of an open-source version of the software in the ’80s and ’90s to the simple appeal of newer databases that natively connect to the internet.

“There was a period of 20 years where people were sure COBOL was dead, so there was nobody teaching it, nobody learning it,” he said. “COBOL started before there were disc drives, let alone the internet.”

A sliver of hope, Scott says, is that COBOL isn’t a particularly complex language to learn. When he was starting his career programming for steel mills in Pittsburgh, he says companies would perform aptitude tests for workers on the floors of the mills. If they passed, they were sent to a two-week COBOL class at IBM and then put onto the job in the IT department.

Bill Hinshaw, who runs COBOL Cowboys, says that the 60-year old programming language still has some life in it, especially in industries where it’s inexorably linked to critical functions. In his experience, governments are simply working with older versions of software and hardware, compared to banks and other industries.

“We’re dealing with more and more people who want to modernize COBOL,” Hinshaw says. “COBOL is not going away.”

Still, governments relying on a system too arcane for most working engineers can be perceived as a structural failure. Murphy’s plea for COBOL engineers is also a sign that local, state, and federal governments have overwhelmingly failed to update their technologies to meet the needs of citizens.

“There will be lots of postmortems,” after the coronavirus passes, Murphy said in his address to New Jersey. One of them on our list will be, ‘How the heck did we get here where we literally needed COBOL programmers?’”