Still Going: 60 Years Young and COBOL Is Still With Us
When technology professionals scan back into the far reaches of memory, some will undoubtedly stumble upon a series of programming languages that were created, popularized, and have since been largely forgotten. For the most part, that is — you can never really entirely write off an old programming language.
As the punch card era of computer programming was winding down, a bunch of professionals got together and decided the time had come to move up to a higher level. This is the era when computer languages that allowed instructions to be written in "code" rather than laboriously punched into cards were born. Among the first of the "infants" to emerge into this new era: COBOL.
COBOL, or Common Business Oriented Language — not to be confused with the Kobol ancestral home world of the original Battlestar Galactica series — was one of the earliest high-level languages ever designed. COBOL was developed in 1959 by the Conference on Data Systems Languages (CODASYL). This committee was a formed by a joint effort of industry, major universities, and the U.S. government.
This committee completed the specifications for COBOL by the end of 1959. These were then approved by an executive committee in January 1960, and sent to the government printing office, which edited and printed these specifications as COBOL 60. COBOL was developed over a six-month period. And now, 60 years later, in 2020, it is still in use.
What Makes COBOL Tick
As indicated by its name, COBOL is a "common" language and was developed for a wide variety of systems. U.S. government officials played a role in developing COBOL and subsequently contributed heavily to its popularity by specifying that all government computer equipment should run it.
COBOL applications can be very large, with typically more than 1,000,000 lines of code. COBOL applications are also very long-lived. Because of the huge investment in building COBOL applications — don't forget those more than a million lines — these applications cannot be abandoned willy-nilly whenever a new technology or programming language becomes popular.
This is why business applications between 10 and 30 years old are still somewhat commonplace. This is also why most of the applications affected by the Y2K problem were COBOL-based. COBOL applications often run in critical areas of business. For instance, more than 95 percent of finance-insurance data is processed with COBOL.
When the makers of COBOL set out to design the language, they wanted to make it simple and portable. They accomplished this goal, but also ensured that COBOL systems would be both large and a bit rigid.
As I stated, the language is simple and has no pointers — no user-defined types — so you don't have to make weird variables when writing code. It has no user-defined functions and no "structure like" data types. File records are also described in great detail, as are lines to be output to a printer. Thus, COBOL is self-documenting. If you know developers, commenting code isn't their strongest suit.
Still Going Strong
According to a report from Gartner, In 1997 experts estimated that there were about 300 billion lines of computer code in use all over the world. Of that they estimated that about 80 percent (240 billion lines) were in COBOL and 20 percent (60 billion lines) were written in all other computer languages combined.
In 1999, Gartner reported that more than 50 percent of all new mission-critical applications were still being done in COBOL. Much nearer in time to the present, research indicated that, through 2014 and 2015, 15 percent of all new applications (5 billion lines) would be developed in COBOL, while 80 percent of all deployed applications would include extensions to existing legacy (usually COBOL) programs.
At this pace, COBOL, which was around before I was born, will be going strong after I am retired and, most likely, gone from the Earth. I think the team that put this together in six short months succeeded beyond its wildest imaginings in their efforts to make a language that lasts. It reads like regular English, so it should never die, unless our own language evolves out of its current form.
There have been a few major milestones along the way. Shortly after COBOL's birth, the American National Standards Institute (ANSI) was responsible for developing new COBOL standards. Three ANSI standards for COBOL have been produced: in 1968, 1974, and 1985.
Decades of Academic Disdain
As mentioned above, COBOL's staying power is the same thing that makes it an object of criticism. Its ability to form spaghetti code with "go to" jumps has been deemed problematic. And, as one computer scientist put it, COBOL "cripples the mind" with how easy it is to write.
Again, since COBOL is written in standard English, its staying power will endure as long as the (American) English language itself doesn't change beyond recognition. With billions of lines of code, replacing the systems dependent on COBOL would be an amazing feat and a true test of endurance.
The COBOL community has always been somewhat isolated from the computer science community. COBOL is inextricably linked to government computer systems, and steering clear of government is something wired into the nature of a lot of computer science folks.
Not only that, but no academic computer scientists participated in the design of COBOL: All of the members of the committee came from commerce or government. Academic institutions have been hesitant to embrace COBOL ever since.
Computer scientists at the time were more interested in fields like numerical analysis, physics, and system programming than in the commercial file-processing problems which COBOL development tackled. Computer science pioneer Jean Sammet once attributed COBOL's unpopularity to an initial "snob reaction" due to its inelegance, the lack of influential computer scientists participating in its design process, and an ingrained disdain for business data processing.
Indeed, the COBOL specifications also incorporated a unique "notation," or meta-language, to define its syntax rather than the then-new Backus-Naur form which the committee did not know of. This resulted in harsh criticism: COBOL was not deemed boorish and unrefined to the extent that people turn aside from it entirely.
Later, COBOL suffered from a shortage of educational material that covered it. It took until 1963 for introductory books to appear (with Richard D. Irwin publishing a college textbook on COBOL in 1966). By 1985, the Library of Congress included twice as many books on Fortran — which was a favorite of mine and one I learned in school — and four times as many on BASIC.
University professors taught more modern, state-of-the-art languages, like Pascal, and more up-to-the-second techniques, leaving COBOL for the "trade school" crowd. Donald Nelson, chair of the CODASYL COBOL committee, said in 1984 that academics "hate COBOL" and that computer science graduates "had 'hate COBOL' drilled into them."
Where We Are Today
A 2013 poll by Micro Focus found that 20 percent of university academics thought COBOL was outdated or dead, and that 55 percent believed their students thought COBOL was outdated or dead. The same poll also found that only 25 percent of academics had COBOL programming on their curriculum even though 60 percent thought they should teach it.
In contrast, just 10 years earlier in 2003, COBOL featured in 80 percent of information systems curricula in the United States. At that time, that was the same proportion as C++ and Java.
There was also significant condescension towards COBOL in the business community from users of other languages — such as FORTRAN — implying that COBOL could be used only for non-challenging problems.
I find it odd, and you may as well, that there is still so much hate. Partly because I just executed a search on a job board of the word "COBOL" and found more than 3,000 job postings. There's a temptation to be dismissive of "old" tech, but I think legacy is not a word category that COBOL falls into.
In 2016, Congress performed an inquiry on where COBOL was being used and found that more than 40 percent of U.S. government systems were still COBOL-dependent. That isn't going to vanish anytime soon and you can bet that there will be a need for COBOL-related professionals for a long time to come.