esc
Anthology / Yagnipedia / COBOL

COBOL

The Language That Runs the World and Embarrasses It
Technology · First observed 1959 (Grace Hopper et al., CODASYL committee) · Severity: Existential

COBOL (Common Business-Oriented Language) is a programming language created in 1959 that processes 95% of ATM transactions, 80% of in-person transactions, and approximately 100% of the world’s payroll systems — a market share that any modern language would kill for and that COBOL achieved by being so boring, so verbose, and so deeply embedded in financial infrastructure that replacing it would cost more than the GDP of most countries.

COBOL is the inverse of every technology trend. It is not exciting. It is not on GitHub’s trending page. It is not the subject of conference talks, blog posts, or Twitter threads. It does not have a package manager, a Discord server, or a mascot. It has IDENTIFICATION DIVISION. PROGRAM-ID. and sixty-five years of uninterrupted service processing the transactions that keep civilization running.

“Every twenty years, someone declares COBOL dead. Every twenty years, COBOL processes their paycheck.”

The Language Nobody Respects and Everybody Depends On

COBOL was designed by committee — the CODASYL committee, convened by the U.S. Department of Defense in 1959, with Grace Hopper as its most influential contributor. The design goal was radical: a programming language that read like English, so that business people could understand it.

IF CUSTOMER-BALANCE IS GREATER THAN CREDIT-LIMIT
    MOVE "DECLINED" TO TRANSACTION-STATUS
    PERFORM DECLINE-PROCEDURE
ELSE
    ADD TRANSACTION-AMOUNT TO CUSTOMER-BALANCE
    MOVE "APPROVED" TO TRANSACTION-STATUS
    PERFORM APPROVAL-PROCEDURE
END-IF.

This is not elegant by modern standards. It is also not ambiguous. A business analyst can read this code and verify its correctness without a computer science degree. This was the point. The point has been forgotten by an industry that now writes business logic in languages that require a senior engineer to parse.

The verbosity that modern developers mock is the verbosity that made COBOL maintainable for six decades. The code is self-documenting because the code is documentation. ADD TRANSACTION-AMOUNT TO CUSTOMER-BALANCE does not require a comment. It does not require a code review to understand. It requires reading.

The Infrastructure

COBOL runs on mainframes. Mainframes run the world:

These are not legacy systems in the pejorative sense. These are production systems — systems that process real money for real people every second of every day, with uptime requirements that would make a cloud provider weep.

The mainframe running COBOL at your bank has been continuously operational for longer than most startups have existed. It has processed more transactions today than your microservices architecture will process in its lifetime. It does not have a Grafana dashboard because it does not need one. It does not go down.

The Retirement Crisis

COBOL’s existential threat is not technical. It is actuarial.

The average COBOL programmer is over sixty. Many are retired. Some are dead. The language was removed from most university curricula in the 1990s, on the theory that COBOL was “legacy” and would be replaced “soon.” It was not replaced soon. It was not replaced at all. The universities stopped producing COBOL programmers and the systems kept requiring them.

The result is a global shortage of people who can maintain the code that processes the world’s money. Job postings read: “COBOL DEVELOPER — URGENT — SALARY: NEGOTIABLE (VERY NEGOTIABLE).” The negotiability of the salary increases with each retirement.

In 2020, when pandemic unemployment claims overwhelmed state systems, several U.S. governors publicly begged for COBOL programmers. The systems processing unemployment claims — written in COBOL, running on mainframes, maintained by people who had themselves retired — could not handle the volume. Not because COBOL was slow. Because there was nobody left who could modify the code.

The irony: the language designed to be readable by business people is now unreadable by an industry that stopped learning it.

The Replacement Attempts

Every decade, someone announces a project to replace COBOL with a modern language. The project follows a predictable arc:

  1. Announcement — “We are modernizing our core systems” (press release, stock price bump)
  2. Discovery — “There are 200 million lines of COBOL” (quiet panic)
  3. Estimation — “This will take 5 years and $400 million” (board presentation)
  4. Execution — “We have rewritten 3% of the codebase” (year 3 status report)
  5. Cancellation — “We are adopting a hybrid approach” (the COBOL stays)

The Commonwealth Bank of Australia spent $1 billion and five years replacing its core banking platform. This is considered a success story. Most attempts end at step 4 or never progress past step 2.

COBOL is not replaced because replacing COBOL means replacing six decades of business logic — logic that nobody documented because the code was the documentation, logic that handles edge cases discovered in 1973 and never encountered again until 2024, logic that is correct in ways that no specification captures because the specification was lost in 1981 and the code is the only remaining authority on what the system does.

You cannot rewrite what you do not understand. You cannot understand what is not documented. The code is the documentation. The code is COBOL. The COBOL stays.

Measured Characteristics

Year created:                                1959
Age:                                         67 years
ATM transactions processed:                  95%
Lines of COBOL in production:                ~220 billion
Daily commerce processed:                    $3 trillion
Average COBOL programmer age:                60+
Universities teaching COBOL (2025):          ~20 (worldwide)
Universities teaching COBOL (1985):          ~2,000
Replacement projects completed:              few
Replacement projects abandoned:              many
Cost of Commonwealth Bank replacement:       $1 billion AUD
Time to replace:                             5 years (success case)
Hackathon projects in COBOL:                 0
Payroll systems in COBOL:                    most of them
Grace Hopper's sprints:                      0
Grace Hopper's shipped languages:            1 (that runs the world)

See Also