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 methods have been written within the 60-year-old programming language and wanted to be up to date to deal with the tons of of 1000’s of claims. Trouble was, few of the state’s staff knew how to try this. And the disaster went past New Jersey, simply certainly one of many states that relied on these unwieldy methods. By one tough calculation, COBOL’s inefficiencies value the US GDP $105 billion in 2020.
You may 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 plenty of quality-of-life enhancements, however on the backend, it was nonetheless made attainable by a mainframe operating the traditional language.
COBOL, quick for Common Business-Oriented Language, is probably the most broadly adopted laptop language in historical past. Of the 300 billion traces of code that had been written by the 12 months 2000, 80 p.c of them have been in COBOL. It’s nonetheless in widespread use and helps a lot of authorities methods, comparable to motorized vehicle information and unemployment insurance coverage; on any given day, it will probably deal with one thing on the order of three trillion {dollars}’ price of monetary transactions. I consider COBOL as a form of digital asbestos, virtually 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 laptop trade (together with Grace Hopper). It known as for “specifications for a common business language for automatic digital computers” to resolve a rising drawback: the expense of programming. Programs have been custom-written for particular machines, and in case you needed to run them on one thing else, that meant a near-total rewrite. The committee approached the Department of Defense, which fortunately embraced the undertaking.
COBOL’s design set it other than different languages each then and now. It was meant to be written in plain English in order that anyone, even nonprogrammers, would be capable of use it; symbolic mathematical notation was added solely after appreciable debate. Most variations of COBOL enable for the usage of tons of of phrases (Java permits simply 68), together with “is, “then,” and “to,” to make it simpler to put in writing in. Some have even stated COBOL was supposed to interchange laptop programmers, who within the Sixties occupied a rarified place at many corporations. They have been masters of a know-how that most individuals may barely comprehend. COBOL’s designers additionally hoped that it could generate its personal documentation, saving builders time and making it simple to keep up in the long term.
But what did it even imply to be readable? Programs aren’t books or articles; they’re conditional units of directions. While COBOL may distill the complexity of a single line of code into one thing anyone may perceive, that distinction fell aside in applications that ran to 1000’s of traces. (It’s like an Ikea meeting guide: Any given step is straightforward, however in some way the factor nonetheless doesn’t come collectively.) Moreover, COBOL was applied with a bit 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 outcome was “spaghetti code,” as builders prefer to say, that made self-documenting irrelevant.
Plenty of laptop scientists had points with COBOL from the outset. Edsger Dijkstra famously loathed it, saying, “The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.” Dijkstra likewise hated the GO TO assertion, arguing that it made applications almost inconceivable to grasp. There was a level of actual snobbishness: COBOL was usually appeared down on as a purely utilitarian language that was supposed to resolve boring issues.
Jean Sammet, one of many authentic designers, noticed it in a different way—the language merely had the difficult activity of representing difficult issues, like social safety. Or as one other defender wrote, “Regrettably, there are too many such business application programs written by programmers that have never had the benefit of structured COBOL taught well.” Good COBOL was certainly self-documenting, however a lot relied on the precise programmer. Fred Gruenberger, a mathematician with the Rand Corporation, put it this fashion: “COBOL, in the hands of a master, is a beautiful tool—a very powerful tool. COBOL, as it’s going to be handled by a low-grade clerk somewhere, will be a miserable mess.”
https://www.wired.com/story/cobol-is-the-asbestos-of-programming-languages/