Early within the Covid-19 pandemic, the governor of New Jersey made an uncommon admission: He’d run out of COBOL builders. The state’s unemployment insurance coverage programs had been written within the 60-year-old programming language and wanted to be up to date to deal with the a whole lot of hundreds of claims. Hassle was, few of the state’s workers knew how to try this. And the disaster went past New Jersey, simply one in every of many states that trusted these unwieldy programs. By one tough calculation, COBOL’s inefficiencies price the US GDP $105 billion in 2020.
You would possibly assume New Jersey would have changed its system after this—and that Covid was COBOL’s final gasp. Not fairly. The state’s new unemployment system got here with various quality-of-life enhancements, however on the backend, it was nonetheless made attainable by a mainframe operating the traditional language.
COBOL, quick for Widespread Enterprise-Oriented Language, is essentially the most extensively adopted pc language in historical past. Of the 300 billion traces of code that had been written by the yr 2000, 80 % of them had been in COBOL. It’s nonetheless in widespread use and helps numerous authorities programs, reminiscent of motorcar information and unemployment insurance coverage; on any given day, it will possibly deal with one thing on the order of three trillion {dollars}’ value of monetary transactions. I consider COBOL as a sort of digital asbestos, nearly ubiquitous as soon as upon a time and now extremely, dangerously tough to take away.
COBOL was first proposed in 1959 by a committee comprising many of the US pc business (together with Grace Hopper). It known as for “specs for a standard enterprise language for automated digital computer systems” to resolve a rising downside: the expense of programming. Applications had been custom-written for particular machines, and for those who wished to run them on one thing else, that meant a near-total rewrite. The committee approached the Division of Protection, which fortunately embraced the challenge.
COBOL’s design set it aside from different languages each then and now. It was meant to be written in plain English in order that anyone, even nonprogrammers, would be capable to use it; symbolic mathematical notation was added solely after appreciable debate. Most variations of COBOL enable for the usage of a whole lot of phrases (Java permits simply 68), together with “is, “then,” and “to,” to make it simpler to write down in. Some have even mentioned COBOL was supposed to exchange pc programmers, who within the Sixties occupied a rarified place at many corporations. They had been masters of a expertise that most individuals may barely comprehend. COBOL’s designers additionally hoped that it could generate its personal documentation, saving builders time and making it straightforward to keep up in the long term.
However what did it even imply to be readable? Applications aren’t books or articles; they’re conditional units of directions. Whereas COBOL may distill the complexity of a single line of code into one thing anyone may perceive, that distinction fell aside in packages that ran to hundreds of traces. (It’s like an Ikea meeting handbook: Any given step is simple, however one way or the other the factor nonetheless doesn’t come collectively.) Furthermore, COBOL was applied with a chunk of logic that grew to be despised: the GO TO assertion, an unconditional branching mechanism that despatched you rocketing from one part of a program to a different. The consequence was “spaghetti code,” as builders prefer to say, that made self-documenting inappropriate.
Loads of pc scientists had points with COBOL from the outset. Edsger Dijkstra famously loathed it, saying, “Using COBOL cripples the thoughts; its educating ought to, due to this fact, be thought to be a felony offense.” Dijkstra likewise hated the GO TO assertion, arguing that it made packages practically unimaginable to know. There was a level of actual snobbishness: COBOL was usually seemed down on as a purely utilitarian language that was supposed to resolve boring issues.
Jean Sammet, one of many unique designers, noticed it in another way—the language merely had the sophisticated activity of representing sophisticated issues, like social safety. Or as one other defender wrote, “Regrettably, there are too many such enterprise software packages written by programmers which have by no means had the advantage of structured COBOL taught effectively.” Good COBOL was certainly self-documenting, however a lot trusted the precise programmer. Fred Gruenberger, a mathematician with the Rand Company, put it this manner: “COBOL, within the arms of a grasp, is a fantastic instrument—a really highly effective instrument. COBOL, because it’s going to be dealt with by a low-grade clerk someplace, will likely be a depressing mess.”
























