For 60 years, COBOL has been the cornerstone language for application development on mainframes. It effectively engages in large-scale batch and transaction processing jobs at a number of companies, government organizations, and other firms.
The first standard for the COmmon Business-Oriented Language (COBOL) was approved and released by the Conference On DAta SYstems Languages (CODASYL) Committee in September 1959. Intermediate updates were released in the early 1960s until the American National Standards Institute (ANSI) took over publishing the standard and, in 1968, released the true foundation of the language. By 1970, COBOL was the top language used in the world.[1]
With 60 years of history, it’s no wonder that COBOL has evolved and become more resilient. Since the start of the COVID-19 pandemic, recent headlines have focused on the age of state unemployment systems and the need for COBOL programmers, but little's been said about the continued importance of COBOL.
An Efficient, Easy Language to Learn and Read
Janet Sun, SHARE past president, recently said, “COBOL is efficient, reliable, and self-documenting. The data would say that code that was written decades ago is still functional, and still delivering values years later.”[2] IBM’s Captain COBOL Tom Ross says nearly all Fortune 1000 companies run most of their data processing through COBOL applications from new accounts, billing, payroll, and budgeting to inventory, customer transactions, insurance claims, and accounting. Derek Britton, director of product marketing at Micro Focus, adds, “COBOL applications are typically long-standing, vitally important central systems, usually processing vast amounts of data, involving complex arithmetic calculations, both online and in batch processing form. As some have commented in the past, COBOL quietly runs the economy. It’s well suited to do just that.”
One benefit of COBOL, according to Ross, is that it is the “easiest language to learn and read,” and it is the “highest performing language with the fastest execution times.” Britton says, “With arithmetic accuracy to 38 digits, strong data manipulation, SORT capability, high performance, and robust error management, COBOL remains unrivaled with a proven record of robustness across various industries.” Ross adds that “COBOL not only easily processes dollars and cents (many different decimal data types), but also processes XML documents and JSON texts. It’s interoperable with Java and C programs and many other application development tools provided by IBM and others.”
Britton concurs. “COBOL’s traditional home is the IBM mainframe and the two technologies remain closely aligned. However, what many people are less familiar with is COBOL’s ubiquity across other platforms — thanks to the language’s portability,” he explains. “In discussing COBOL’s use today, the language integrates with Java, C#, Docker containers, mobile, .NET, and JVM, as well as Azure and AWS cloud environments, and runs across established operating environments like Linux, mainframes, Windows, and UNIX. It’s also used to build cloud, containerized, and managed code apps because of the language’s continued evolution of support.”
According to Ross, COBOL applications are the easiest to maintain because they have built-in readability. He adds that it doesn’t make sense to rewrite applications in another language “because it’s very expensive and, in the end, you have the same application, but it’s slower because it has new bugs that need to be worked out. Additionally, by the time the bugs are worked out, the ‘new’ language is now legacy and the company has spent millions of dollars.” Ross explains, “COBOL is perfect for strategic projects and it’s constantly updated for the latest demands in IT. It does everything that customers want it to do.”
According to Britton, “COBOL also remains a hugely popular choice in the software sector — its reliability and portability make it a great choice for independent software vendors.” Ray Mullins, principal software engineer at Rocket Software, adds, “The growth of COBOL on other platforms usually is tied to smaller applications being moved off the mainframe. There is not a lot, but I’ve seen evidence that new COBOL development occurs off the mainframe.” He adds, “To be fair, any back-end application can be written in COBOL. What we see are new business processes designed around already existing data. Because of developer knowledge and familiarity, it's easier to write a new program based on an already existing program. There's an old joke about how there was only one COBOL program ever written — the first — and every other one since copied from a predecessor.”
Finding the Right Fit for COBOL
Ross says COBOL is the preferred language on the mainframe, but off the mainframe, other languages can be used for client server applications. “For user interface code,” he says, “JavaScript, Node.js, and Swift are preferable.” Ross explains, “COBOL is not a good language for user interface code like web pages or smartphone applications.” Mullins adds, “One of my rules in software development is that not every language is good to write an application. For example, I would not write a mathematic-heavy program in COBOL; I'd choose FORTRAN or C, even though COBOL has trigonometric functions and handles floating point very well. COBOL is more oriented towards file processing.”
Unless a company has a small workload that can be run from a single server, Ross doesn’t recommend moving off the mainframe or away from COBOL. Britton adds that to move away from COBOL, a company’s cost-benefit analysis would have to determine that the cost of moving away from COBOL is less than the benefit of the new system. “The new system is as yet unknown (yet to be written) or it comes in the form of a packaged application that will incur a huge cost,” he explains, “and it often takes years to implement and properly support the unique business process it hopes to model.” Britton adds, “Studies and customer testimonials reveal the huge risk of large scale change and there are high failure rates for this sort of exercise.”
Recent studies commissioned by Micro Focus reveal that not only do COBOL applications remain strategic (92%), but that modernization is seen as the most viable option for those systems (70%). Britton continues, “COBOL applications from the past can also easily recompile and run in the cloud, containers, .NET, and JVM, as well as established environments like mainframes, Linux, UNIX, and Windows. COBOL sits inside today’s latest integrated development environments, within a modern DevOps toolchain, and can be used to build agile applications on the mainframe. COBOL is as contemporary an application technology as anything else.”
Mullins adds, “I am a believer in the right platform for the business and the system. A small business should not invest hundreds of thousands of dollars on an IBM Z® box because they won’t derive any value from it. On the other hand, the many failures of ‘off the mainframe’ projects show that distributed systems are not the best platform for everything. COBOL is a tool in the data processing kit, but it's not a panacea.”
According to Britton, many languages have developed over the years, including Java and Visual Basic, and COBOL supports and integrates with all enterprise-class contemporary technology. “It is a fairly typical use-case that new language development may want to consume or integrate with established COBOL applications or services on the mainframe or elsewhere,” he says. “No languages match COBOL’s robust business processing capabilities. Meanwhile, you might expect device level or user interface code to use a different language. Vitally, however, those functions can integrate and co-exist, either on the mainframe or distributed across the ether,” with COBOL.
Here to Stay
So, why all the talk about COBOL being antiquated? Much of the problem is tied to an organization’s poor management and focus on hiring the right talent for the job.
Bhabani Misra, an associate dean at the University of St. Thomas in St. Paul, Minnesota, says companies that face shortages in COBOL talent are being creative, redirecting talent from elsewhere in the organization and sometimes engaging in partnerships with universities to develop new skills among their workers to fill in talent gaps.[3]
Whether companies are tackling talent gaps or looking to speed up their computers, experts agree that COBOL doesn’t necessarily need to be replaced wholesale. COBOL continues to evolve to meet new business needs, but experts agree the language shouldn’t be used for every business need. In fact, companies should seek out the best possible ways to address their underlying reliability and scalability issues before undergoing costly and time-consuming modernizations. With the extreme optimization available for legacy COBOL, either through recompiling it for the latest Z hardware or via options like the newly announced IBM Automatic Binary Optimizer, also known as ABO, it’s clear that experts don’t see COBOL fading away anytime soon.
[1] https://www.share.org/blog/languages-part-2-cobol-is-60...wow
[2] https://www.share.org/blog/still-cobol-after-all-these-years-858
[3] https://enterprisersproject.com/article/2020/6/cobol-application-should-you-modernize