Why the Government Is Desperate for Programmers Who Know This Old Language

Photo credit: tigermad - Getty Images
Photo credit: tigermad - Getty Images

From Popular Mechanics


As the U.S. continues to grapple with the economic fallout of the COVID-19 (coronavirus) pandemic like the rest of the world, millions of Americans have filed for unemployment. (The U.S. Department of Labor registered 6.6 million unemployment insurance claims in the last week alone.) Predictably, with so many people filing at once, it’s jamming up certain states’ systems, many which run on older computers.

So some states—like New Jersey, Kansas, and Connecticut—are desperate for people who know their way around those older mainframes and can thus handle the flurry of activity. According to CNN, these states have called for volunteer programmers versed in the programming language COBOL, which stands for Common Business-Oriented Language, to step in and code. In the CNN article, a leader from Connecticut complains about the state's "40-year-old system comprised of a COBOL mainframe and four other separate systems."

While COBOL may indeed be old, "four other separate systems" sure is doing a lot of heavy lifting in that sentence. There's also a stable release of COBOL from just 2014. Coverage like this adds to COBOL's misguided reputation as a wildly outmoded programming language—but that's a fundamental misunderstanding of how we program, and what different languages are for.

More importantly, COBOL programmers have been able to basically write their own checks for a long time. Taking an emergency gig to help shore up floundering state unemployment infrastructure is an act of public service—not some time machine to the past.

Shoutout to the University of Limerick’s computer science department for having a great page of short sample programs written in the COBOL language, part of retired lecturer Michael Coughlan’s work to prepare students to work with legacy systems and mainframes. Coughlan wrote Beginning COBOL for Programmers in 2014, which is when the last new version of COBOL was released.

Photo credit: University of Limerick/Michael Coughlan
Photo credit: University of Limerick/Michael Coughlan

Anyone with programming experience can visually parse at least some of what’s going on in this code. And that’s who Coughlan’s book is for: programmers.

“Perhaps you recognize the opportunities presented by the current COBOL skills crisis, or are working in a mission critical enterprise which retains legacy COBOL applications,” the description reads. That was years before the press realized state unemployment systems relied on COBOL—instead, it was when “only” the majority of daily financial transactions around the world did.

It’s objectively true that COBOL is one of the oldest programming languages in use today. But it’s frustrating to hear politicians say that systems with COBOL mainframes or batch processing are “really old stuff” (Kansas governor Laura Kelly) instead of just the established paradigms for doing this work. A newer, better version of the same system might not even get rid of the COBOL portion, but instead replace what it’s connecting to on the user side.

The Guardian compared COBOL to internal combustion technology, which is more fair. Both are aging technologies that are entrenched in modern life to an extent that makes it hard to even imagine a different paradigm. And the same way the overwhelming majority of drivers are still in traditional cars, most people buying or selling things from day to day are touching COBOL. If not for climate change, would anyone independently decide to switch to an electric car?

Yes, COBOL programmers are aging out, but COBOL still capably handles trillions of dollars a day. Newer languages have different applications, but if you tried to recreate efficient batch processing on this scale with Java (which younger programmers also hate!), what resulted would be a gigantic nightmare. It would take longer to process batches than there are hours in the day. And that’s not because Java is bad—it’s just different.

Batch processing in a language like Python might be better, but even a perfect solution to replace COBOL will take decades to fully implement around the world and in all of these integrated systems.

In the meantime, consider picking up a new, decades-old language.

You Might Also Like