Phoenician is a dead language. Mayan is a dead language. Latin is a dead language. What makes these languages dead is the fact that no one speaks them anymore. COBOL is NOT a dead language, and despite pontifications that come down to us from the ivory towers of academia, it isn’t even on life support.What made those other languages die is the fact that they became obsolete. As the peoples that spoke them were overrun or superseded by other populations that eventually replaced them, no one saw any need to speak their languages. There was no good reason to keep on speaking a language whose creators had become irrelevant to history.
COBOL is different. Certainly, there were more people that “spoke” COBOL back in the 1980s than there are now. Remember, however, the second word in COBOL’s acronym – business. Businesses are complex social and economic organisms that exist for but a single purpose – to make money. One of the approaches businesses take to satisfy that all-important survival trait is that they want to avoid expenses. This avoidance of expense turns out to have been key to the survival of COBOL because those programmers of the 1980s (give or take a decade) were very busy programmers. Estimates are that as many as a several hundred billion lines of COBOL code were written for businesses world-wide. Because of the first word in COBOL’s name (“Common”), as businesses replaced their older, slower and less-reliable computer systems with newer, faster and more-reliable ones, they found that the massive investment they had in their COBOL software inventory paid dividends by remaining functional on those new systems - many times with no changes needed whatsoever!
Unwilling to endorse change merely for the sake of change, businesses replaced these billions and billions of lines of COBOL code only when absolutely necessary and only when financially justifiable. That justification appeared to have come as the 20th century was nearing the end.
Written long before the end of the century was near, many of those COBOL applications used 2-digit years instead of four digit years because, when the programs were written, computer storage of any kind was expensive. Why should millions and millions of bytes of storage be wasted by all those “19” sequences when the software can simply assume them? Since their software would suddenly think the current year was “1900” after the stroke of midnight, December 31st 1999, businesses knew they were going to have to do something about the “Y2K” (programmer “geek speak” for “Year 2000”) problem.
At last! Y2K was going to be the massive asteroid strike that finally killed off the COBOL dinosaur.
Unfortunately for those seeking the extinction of COBOL, that proved to be wishful thinking.Always concerned with the bottom line, businesses actually analyzed the problems with their programs. Many applications were replaced with newer and “better” versions that used more appropriate (translation: more politically correct) languages and computer systems. BUT … many applications were not replaced. These were the absolutely essential applications whose replacement would cripple the business if everything didn’t go absolutely perfectly. These COBOL applications were modified to use 4-digit years instead of 2-digit ones. At the same time, many of them received cosmetic “face lifts” to make their computer/human interfaces more acceptable, frequently with the help of modules developed in the newer languages.
Evolution, you see, is in COBOLs DNA. Over time, COBOL evolved in form and function, first via work done by the American National Standards Institute (ANSI) and eventually through the efforts of the International Standards Organization (ISO).
The first widely-adopted standard for COBOL was published by ANSI in 19682. Named the ANS68 standard, this version of COBOL was originally standardized for use primarily as the business programming tool of the US Defense Department; it quickly was adopted by other Government agencies and private businesses alike.
Subsequent standards published in 1974 and 1985 (ANS74 and ANS85, respectively) added new features and evolved the language toward adoption of the programmer-productivity tool of the time – “Structured Programming”.
As the 21st century dawned, programming had moved out of the board room and into the Game Room, the Living Room and even the Kitchen; as computers became more and more inexpensive they appeared in games, entertainment devices and appliances. Even the automobile became home to computers galore. These computers need software, and that software is written in the so-called “modern” languages.
Combined with Y2K, these trends became the impetus for COBOL to evolve even newer features and capabilities. The COBOL2002 standard3 introduced object-oriented features and syntax that make the language more programmer-friendly to those trained by today’s programming curricula. The COBOL20xx standard, currently under development, carries the evolution forward to the point where a COBOL20xx implementation will be fully as “modern” as any other programming language.
Through all this evolution, however, care was taken with each new standard to protect the investment businesses (or anyone, for that matter) had in COBOL software. Generally, a new COBOL standard – once implemented and adopted by a business - required minimal, if any, changes to upgrade existing applications. When changes were necessary, those changes could frequently be made using tools that mechanically upgraded entire libraries of source code with little or no need for human intervention.
The OpenCOBOL implementation of the COBOL language supports virtually the entire ANS85 standard as well as some significant features of the COBOL2002 standard, although the truly object-oriented features are not there (yet).