
The Ancient, Strange Coding Language that 95% of ATMs Use
Audio Summary
AI Summary
The video delves into the surprising and persistent relevance of COBOL, a programming language developed in the late 1950s. Despite its age, COBOL underpins a significant portion of critical infrastructure, including over 40% of online banking systems, 80% of in-person credit card transactions, and 95% of ATM transactions. It's estimated that COBOL programs handle an astonishing $3 trillion in transactions daily. Furthermore, COBOL code is still actively used in various government functions, such as federal student loan applications and unemployment filings in at least 12 US states during the COVID-19 pandemic, with estimates of 220 to 800 billion lines of COBOL code still in operation.
The scarcity of COBOL engineers is so acute that advertisements are being made to highlight the difficulty in finding them. The speaker humorously likens COBOL to a vampire – immortal yet seemingly dead, and challenging to work with. The video aims to explain how we arrived at this situation and why we continue to rely on this antiquated language.
COBOL, which stands for Common Business-Oriented Language, emerged in the late 1950s when computing was in its nascent stages. At that time, programming languages were typically proprietary, designed by specific mainframe manufacturers for their own hardware. This meant that programs were often bespoke and difficult to transfer or update if the hardware changed. In 1959, industry professionals, including the U.S. Department of Defense (DoD), recognized the need for a standardized language that could operate across different hardware and operating systems. COBOL was developed as a result, officially emerging a year later.
The DoD's endorsement was crucial. They mandated that any machine they purchased must have a COBOL compiler. During the Cold War, with significant government funding for defense projects, this mandate incentivized manufacturers to make their systems COBOL compatible to secure lucrative federal contracts. Consequently, COBOL rapidly spread throughout government agencies, the financial sector, and other data-intensive industries.
What's truly remarkable is COBOL's longevity. It originated in the same era as cassette tapes and rotary phones, technologies that have long been superseded. While COBOL has seen some academic and developmental updates, the core systems written in it decades ago have largely persisted. Modern programming languages have almost entirely replaced COBOL in academic and new development contexts, but the existing COBOL systems remain in place.
The difference between COBOL and modern languages like Java or Python is stark. The speaker uses the analogy of clay versus Lego: clay (modern languages) is adaptable and efficient, allowing for precise creation, while Lego (COBOL) involves more rigid, blocky construction. COBOL code, while functional, is often perceived as clunkier and less efficient than its modern counterparts.
A distinctive feature of COBOL, stemming from its design for business and government users, is its readability, aiming to mimic plain English. COBOL code is structured into "sentences" that end with a period. It boasts hundreds of keywords, far more than languages like Java, which has a more concise set of built-in commands. For example, a "Hello World" program in Java can appear complex to the uninitiated, whereas the COBOL version is designed to be more intuitively understandable, with clear labels for sections like the title page, the core logic, and the display command.
Early COBOL even buried mathematical operations within English-like phrases, such as "add 5 to 6," later evolving to "compute 5 plus 6," maintaining a high degree of legibility. Similarly, variable manipulation, like changing a name, is expressed as "move Sam to name," akin to placing a name into a designated box.
However, this readability becomes a challenge when dealing with millions of lines of code. The global nature of variables and the presence of "go to" statements, which allow programs to jump to disparate parts of the code, can make COBOL programs incredibly difficult to navigate and maintain, often leading to what is referred to as "spaghetti code."
Despite efforts to modernize COBOL with more versatile features, most existing critical COBOL programs were written before these enhancements, limiting their impact. Nevertheless, COBOL's core strength in processing vast amounts of data accurately without errors remains invaluable to sectors like banking and government.
The critical issue moving forward is the dwindling number of COBOL experts. With fewer individuals learning the language and many experienced engineers retiring, there's a looming risk of systems becoming unmanageable. A small group of seasoned COBOL professionals, dubbed the "COBOL cowboys," are often called upon for emergency maintenance. The video concludes by posing a stark choice: either invest in teaching COBOL to a new generation or undertake the extremely expensive and time-consuming process of rewriting these foundational programs before their underlying logic becomes entirely incomprehensible, potentially leading to disruptions in essential services like ATM operations.