IBM Champion Reg Harbeck highlights the 65th anniversary of COBOL, what we take for granted about the programming language and predictions for the future
By Reg Harbeck
By Reg Harbeck
It all began in the spring of 1959. Everything was in place: the vision, the need, the business requirements, the computing hardware, the people and the will. But the language was missing, despite various efforts to employ the few compiled programming languages that already existed. So, the CODASYL (Conference/Committee on Data Systems Languages) consortium was formed. Amid substantial wrangling, a new language began to take shape, and before the year was over, its name had emerged: COBOL, COmmon Business-Oriented Language. By January 8, 1960, the original specifications for the language were sent for publication.
While it inherited features of previous compilers such as Dr. Grace Hopper’s FLOW-MATIC, COBOL was a deliberately unique and ground-breaking language designed to handle the numeric and textual data processing that business demanded. It would not be exactly accurate to say they got it right the first time, as numerous standard revisions were introduced over the first decade—and nearly every decade since. Yet COBOL was the first truly incumbent business programming language, and it became the most widely used programming language in the world by 1970.
Today, 65 years later, with hundreds of billions of lines of COBOL in use running the world economy, there does not appear to be any other business programming language positioned to displace its definitive leadership.
SPONSORED CONTENT
CM evolveIT metaTX-AI uses AI to extract business rules and documentation, allowing you to target high-value refactoring opportunities. Your applications will operate on the cutting edge and streamline your developer resources. Save costs by running workloads on Ziip processors.
Automate at scale and maintain your application within standard architectures. Just plug it into your standard DevOps pipelines and go. Your future developers will get up to speed quickly with minimal end-user training.
More than any other programming language in history, COBOL cornered the market on ordinary, day-to-day business. Everything that business was already doing well became the bread and butter of COBOL, and translating established business processes into COBOL applications was greatly helped by the English-like and maybe even verbose syntax of a language that is nearly self-documenting. If you could describe in simple English how a given task was performed, for example reporting on accounts receivable, then an office clerk could transcribe this ordinary procedure into a COBOL program without being a computer genius, or even a computer nerd. And so, the work began of transcribing the everyday activities of business into COBOL programs.
You may ask, what’s so special about ordinary? Indeed, there really isn’t anything particularly special, but ordinary business processing is slow, error-prone and labor-intensive—all things that can get better when done on a computer.
The state of the art in technology didn’t stand still during these early years, nor any of the decades since. Hardware got faster and more sophisticated, consumers got more demanding and sophisticated, the range of business activities that could be automated continuously grew on the foundations of previous automation. The COBOL language itself continued to be enhanced to meet the ever-changing landscape of potential and capacity.
Here's the thing, though: COBOL is a true open-source language, not owned by any single vendor. While commercial organizations such as IBM have very successful COBOL compilers for their platforms, and even hardware architectures that seem designed and optimized to think like COBOL, the language itself is free from vendor lock-in. So, a COBOL program written for any platform can be recompiled (and adjusted if any non-standard features are used) to run on any other platform that has a COBOL compiler, of which there are many.
As Misty Decker tells us, COBOL was based on a language called FLOW-MATIC invented by Dr. Grace Hopper. When they wanted to invent a programming language that would make applications portable so that they could run on any hardware, Hopper was brought on to lead the project. Decker explains, “[Hopper] said, ‘The one thing I insist is that it’s written so that anybody can read it,’ and that’s what FLOW-MATIC was—a language that anybody could read. So there are two things that COBOL was and is famous for. First: It was a language you didn’t have to be a programmer to understand. They wanted anybody in the business to be able to understand what it’s trying to do. Second: It was the first language that let you run the same application on different hardware platforms.”
The language has grown and improved in response to every kind of business and technological opportunity, while remaining, in its essence, the same language that was envisioned in 1959: the embodiment of automating ordinary business activities.
“Housework is something that nobody notices unless you don’t do it,” as the saying goes.
There’s something special about the things that are so invisible that we just take them for granted. We ordinarily can’t just dispose of our COBOL investment because it works so well, and there’s so much of it, and we are so utterly—if invisibly—reliant on it. Not that organizations haven’t tried, but the cost of rewriting all that COBOL rarely provides any significant benefit.
COBOL has manifested itself to be an essential utility, just like water, gas and electricity. Dr. Cameron Seay puts it this way: “It really doesn't matter how you feel about it, it really doesn't matter what your opinion of it is. It just is and it's going to do what it does.”
So, what do we take for granted about COBOL? Start with decimal financial math, built into the language (and the most successful hardware architecture where it runs) so that pennies don’t go missing with the conversion between binary and decimal. Then look at the massive amounts of textual data that accompanies those dollars and cents.
Then look at the programs. In fact, read them. Aloud. They’ll literally tell you what they do! In a world of genius-friendly programming languages that let you do obscure things that defy comprehension—sometimes even when properly documented—COBOL is about business and normal people doing and programming such business.
And all the business transactions that you take for granted, from credit card purchases to online banking to booking travel or filing your taxes—everything that has to work so consistently that we don’t give it a thought—are substantially written in COBOL. Sometimes, in fact, a lot of the time, it just makes sense to say, “Why not be normal?”
Since the dawn of personal and consumer computing, we have been constantly marketed to about the next best thing. And life is indeed better because of some of those innovations. And different because of some. And maybe worse because of some. And we have avoided tried-and-true technology like a teenager avoids their parents in public.
Of course, one of the ways that COBOL is normal is that it’s been 65 years since it was introduced as the language for business applications, and while those applications have been enhanced in many ways over the years, the pre-electronic-computing ways we did things have been made faster and more reliable, while still being key reasons you can rely on your investments and retirement funds so you can look forward to enjoying your leisure time.
Part of the beauty of this is that, while the COBOL applications that run the world are often enhanced; they don’t need to be rewritten or replaced until change is necessary. In a world full of ordinary, those COBOL applications are woven into the fabric of everything that works, and there’s no reason to expect that to change during our lifetimes. In fact, the very source code of those applications is an essential documentation of how everything works that is true by identity: it literally does what it says.
What sort of technical article focuses on the normal humanity of something? Barely a word about data types or platforms? In a world full of one-off and deep-dive languages doing obscure and sometimes brilliant things, COBOL has been chugging along keeping everything working for six and a half decades now. And while the technology of it has met the relevant challenges and continued to advance, business has always been its middle name—and business is about serving humanity.
Dr. Grace Hopper is purported to have said something like, “I don’t know what the programming language of the future will look like, but I know it will be called COBOL.” Turns out, while it has continued to advance technologically, COBOL has remained entirely recognizable, and there’s every reason to expect that to continue. The COBOL code you write today may well be inherited by your great-grandchildren to maintain it. And it will continue to invisibly power the world economy.
As Derek Britton tells us, “The fact that most of us will access a COBOL system today without realizing it—checking accounts, insurance quotes, shipping a parcel and countless other mundane, daily tasks—speaks volumes of the unseen pervasiveness of COBOL. Its quiet ubiquity, power and timeless support of the global economy means it would be impossible for the world to function without it.”
So, what does the future of COBOL look like? Well, there will be some churn with other languages that have a slightly different focus than basic business, and there are already great tools for distilling the business rules in COBOL code and then turning them into other languages like Java. Yet, for all that, the amount of COBOL code in the world isn’t shrinking, and it won’t.
Will new applications continue to be written in COBOL, especially as enhanced with future technological advancements? No other business-oriented programming language has ever demonstrated a compelling case to displace it, and as a new generation of programmers arrive to maintain COBOL, they’re likely to discover new ways to take advantage of its strengths.
Here’s the fun thing: We’ve been here before and we’ll be here again. COBOL is like endless cycles of the hero’s journey, so well embodied in T.S. Eliot’s phrasing: “We shall not cease from exploration. And the end of all our exploring will be to arrive where we started and know the place for the first time.”