The Covid-19 pandemic exposed a quiet crisis in American infrastructure: states relied on 60-year-old COBOL (Common Business-Oriented Language) systems for unemployment benefits, and few developers knew how to fix them. This isn’t just a historical quirk; inefficiencies in COBOL cost the US economy an estimated $105 billion in 2020 alone. Despite this, COBOL persists, powering everything from motor vehicle records to trillions of dollars in financial transactions daily.

The Origins of a Ubiquitous Language

COBOL emerged in 1959 from a committee seeking to solve the high cost and complexity of early programming. The goal was a language anyone could understand, even non-programmers. The US Department of Defense quickly embraced the project, mandating COBOL compilers in federal contracts, ensuring its dominance during the Cold War.

COBOL’s success lies in its machine independence and rapid proliferation. Its design was deliberately simple, using plain English and hundreds of words like “is” and “then,” aiming for self-documenting code. However, this readability dissolved in large programs, leading to the infamous “spaghetti code” due to the unconditional GO TO statement.

Why COBOL Remains Essential

Despite criticism from computer scientists like Edsger Dijkstra, who called its use a “criminal offense,” COBOL thrived. Its strength lies in its precision for financial applications, using fixed-point arithmetic instead of floating-point, making it ideal for handling large sums accurately.

The language’s flaws were acknowledged early on; designer Jean Sammet admitted a key mistake was the lack of “parameterization,” making changes in one part of a program affect the whole system. This complexity makes modern updates exceptionally difficult, as seen in New Jersey’s struggles with its unemployment system.

The Future of COBOL: AI and Conversion Challenges

Today, companies like IBM offer AI-powered conversion tools, promising to rewrite COBOL systems in modern languages. However, these efforts often result in “JOBOL,” a confusing hybrid that retains COBOL’s structure but loses its readability. Simply replacing COBOL with Java doesn’t fix the underlying problems.

COBOL’s persistence is a cautionary tale: what appears efficient on paper can become a dangerous liability over time. Despite its shortcomings, the language remains deeply embedded in critical infrastructure, and removing it is proving far more difficult than anyone anticipated.