COBOL, Programming, and Coding

Makena Kelly, reporting for The Verge on the important segments of U.S. infrastructure that run on COBOL legacy systems, which have been overwhelmed during the COVID-19 crisis:

Colorado — like most states and territories across the country — is experiencing record unemployment numbers. But the state’s unemployment system is built on aging software running on a decades-old coding language known as COBOL. Over the years, COBOL programmers have aged out of the workforce, forcing states to scramble for fluent coders in times of national crisis.

A survey by The Verge found that at least 12 states still use COBOL in some capacity in their unemployment systems. Alaska, Connecticut, California, Iowa, Kansas, and Rhode Island all run on the aging language. According to a spokesperson from the Colorado Department of Labor and Employment, the state was actually only a month or two away from “migrating into a new environment and away from COBOL,” before the COVID-19 pandemic hit.

To modern eyes, COBOL syntax is just plain weird. Programmers are famously opinionated about languages, but at a high level, almost all popular modern languages in use today are fundamentally similar. If you know, let’s say, JavaScript, you can pick up Go, Swift, Java, Python, Ruby, Lua, etc. pretty easily. You can at least look at examples from those other languages and follow along. They are, ultimately, all derivatives of C. COBOL, on the other hand, is like something from another universe. It’s a significant investment to get up to speed with the COBOL language, and from the sounds of it, an even deeper investment to get up to speed with these 40-year-old code bases (not merely to make changes — but to make changes that don’t result in unintended breakages elsewhere).

As a sidenote, I’m fascinated at how code has, seemingly all of a sudden, eclipsed program in common usage. Until recently, a programmer was one who programmed using a programming language. Now, you typically hear that a coder is one who codes using a coding language. I don’t mind the noun coder or verb coding so much — I don’t like them, but I can bear them — but the adjective coding language truly grates on my ears. The Art of Computer Coding or The C Coding Language just wouldn’t carry the same literary heft. Programming is a serious endeavor; coding sounds like a lark — like the difference between writing and jotting.

There’s also a missing noun form for the output, the product. A programmer can write code to create a program. A coder can write code to create … well, all sorts of stuff — scripts, frameworks, plugins, services, bots, and, of course, apps — but none of them are rooted in the word code. But we don’t much speak of programs any more, which, I suspect, is partly to blame for the decline in usage of all forms of program.

A bigger factor, I suspect, is generational. Programming sounds old and stodgy; coding sounds young and cool. Today’s usage trend toward coding is in fact the opposite of the ’90s trend toward calling the field software engineering — coding sounds informal, guileless, ad hoc; engineering sounds rigorous, regulated, and let’s face it, pretentious.

And, lastly, there’s the explosive growth in demand, which has led to many people doing it who aren’t any good at it. Code is merely a means to an end. Programming is an art and code is merely its medium. Pointing a camera at a subject does not make one a proper photographer. There are a lot of self-described coders out there who couldn’t program their way out of a paper bag.