Chief Product Officer, Ispirer Systems
For many developers, COBOL is seen as an obsolete language that has faded into obscurity. Today, programmers often opt for more modern, efficient programming languages. This preference is understandable, much like choosing a state-of-the-art Tesla over a Mercedes of the 80s, right?
COBOL, while considered outdated, continues to be employed by major corporations, even in 2023. In this piece we will look at the origin of COBOL, how the design of the programming language stands out even today, and what makes COBOL both so enduring and so intractable.
History of COBOL
COBOL, which stands for "Common Business-Oriented Language," is a programming language with a rich history. It was designed in 1959 by CODASYL and was partly based on FLOW-MATIC developed by Grace Hopper. Initially this language was invented as a US Department of Defense effort to create a portable programming language for data processing.
The mission of COBOL was in managing financial records, inventory, and various other business-related data. What made it particularly unique was its syntax and structure, which were intentionally crafted to mimic natural language. This design made COBOL more accessible and easier for non-programmers to read and understand.
By 1970, COBOL was the most used programming language in the world. Banks, businesses, and government entities depended on the language’s data processing abilities. These entities relied on this language for their critical systems, and as a result, there are still numerous legacy COBOL applications in use today. Even though the language itself is considered outdated, these legacy systems continue to perform essential functions.
One notable event that brought COBOL into the spotlight in the late 1990s was the Y2K bug. Many COBOL programs used two-digit representations for years (e.g., '99' for 1999), leading to concerns about how computers would handle the year 2000. This prompted a massive effort to update and fix COBOL code to avoid potential issues when the year rolled over to 2000. It is worth mentioning that the reason for the Y2K problem is rather the short-sightedness of the programmers and not the capabilities of the language.
The Y2K issue originated primarily from economic considerations. During the early days of the computer era, the development of software necessitated expensive data storage solutions. Because the widespread adoption and rapid advancement of this emerging technology were unforeseen by many, businesses exercised caution in allocating their budgets. This lack of long-term planning, particularly considering that the new millennium was four decades away, resulted in programmers resorting to a 2-digit year code instead of a 4-digit one.
Due to its design advantages and heavyweight industry backing, COBOL has stuck around, outliving the original systems it was designed for by a wide margin. According to various estimates, by 1990 COBOL was the most widely used programming language in the world. By 1997, it was believed to be running some 80% of business apps.
COBOL's success can be attributed to a combination of key factors that made it a dominant force in the world of programming.
First and foremost, the language was designed with a clear focus on business needs. It excelled at handling complex business logic and data processing tasks, making it invaluable for organizations dealing with financial, administrative, and data-driven operations.
What set COBOL apart was its syntax, intentionally crafted to resemble the English language. Because of its similarity to English, COBOL was extremely easy to learn compared to Fortran, for example. It was an easy entry point for young developers to quickly master a new language.
COBOL also emphasized portability, enabling programs written in it to run on different computer systems with minimal modifications. This portability was a significant advantage for businesses that needed to adapt their software to various hardware platforms.
The large-scale adoption of COBOL by many major organizations, particularly in the financial, government, and corporate sectors, also influenced its success and created a network effect. As more organizations used this programming language, its value increased because it allowed for compatibility and data exchange between them.
COBOL dialects refer to variations or specific implementations of the language. While the language has an official ANSI/ISO standard, it also has a rich COBOL version history and extensions developed over the years to cater to different platforms, systems, and specific needs. Here are a few notable dialects:
- ISO COBOL: This is the official, standardized version of COBOL established by the American National Standards Institute (ANSI) and the International Organization for Standardization (ISO). It's the baseline for all COBOL implementations and ensures cross-platform compatibility.
- IBM COBOL: This dialect is tailored for IBM mainframe systems, such as the System z series. It includes specific features and optimizations for these platforms and is widely used in the finance and banking sectors, where mainframes are prevalent.
- Micro Focus COBOL: Micro Focus is a company that provides COBOL compilers and tools for various platforms, including Windows and Unix/Linux. Their dialect of COBOL language includes extensions for COBOL modernization and enables integrations with contemporary technologies.
- Fujitsu COBOL: Fujitsu's COBOL dialect is designed for their own mainframe and server systems. It includes features for high-performance processing and integration with Fujitsu hardware and software.
- ACUCOBOL: ACUCOBOL is a dialect of COBOL designed for compatibility with COBOL-74 standards while offering additional features for data file handling and user interface development.
- OpenCOBOL (now known as GnuCOBOL) is an open-source implementation of COBOL language. It aims to provide a free and open alternative to commercial COBOL compilers and has gained popularity in the open-source and Linux communities.
- UNISYS COBOL: UNISYS has its own COBOL dialect optimized for their ClearPath mainframe systems. It includes features for integrating COBOL applications with these systems.
A recent survey, conducted by the independent research firm Vanson Bourne and sponsored by software vendor Micro Focus, shed light on the unexpected growth and enduring relevance of the venerable COBOL programming language in 2022. Contrary to initial expectations, the utilization of this language has expanded significantly.
The study unearthed several compelling reasons behind the continued use of COBOL. Notably, a staggering 92% of organizations perceive their COBOL-based application workloads as pivotal to their business operations. This perspective underscores the strategic importance of this language in modern enterprises.
Cloud computing plays a central role in the modernization wave associated with this technology, as highlighted by the survey. Astonishingly, 43% of respondents reported that their applications either already support the cloud or have plans to do so by year-end.
Moreover, a remarkable 52% of survey respondents anticipate the continued use of applications built with COBOL for at least another decade. Intriguingly, it is not merely preserving existing systems but also actively contributing to application modernization efforts. A substantial 72% of participants indicated their intent to modernize applications based on this language as part of comprehensive digital transformation strategies.
With its deep roots in computing history, Cobol is making a surprising comeback in today's tech world. It turns out that lots of companies still find it super useful for their important tasks.
Why? Well, a huge chunk of organizations think this language is crucial for how they do business, and more than half of them believe they'll be using it for at least another ten years. What's even cooler is that it isn't just maintaining old stuff, but also helping make things better and newer. Many businesses are upgrading their software built with this language as part of their big plans to go digital, and a bunch of them are moving it to the cloud. This shows that this technology isn't stuck in the past – it's adapting and staying relevant.
And what does the future look like for organizations that rely on COBOL? One glimpse comes from Misu Tasnim, executive director of digital service at the U.S. Department of Health and Human Services. She’s part of a group that’s focused on migrating government agencies away from outdated mainframe systems, and their current client is the Center for Medicare and Medicaid Services.
Traditionally, government modernization efforts involved massive contracts with large firms, often resulting in costly and delayed outcomes. However, a new approach is emerging, characterized by incremental change. The focus is on an "API first" and cloud-centric strategy, recognizing that migrating an entire monolithic system to the cloud is a gradual process. Some components are being converted to Java, while others continue to run on the mainframe.
This incremental approach, involving breaking off functionality from legacy systems piece by piece, is seen as the way forward. It allows rewritten code and COBOL code to run in parallel within a distributed, containerized microservices ecosystem that communicates via APIs. While there have been stories of COBOL integration challenges, experts emphasize the importance of understanding the strengths of legacy COBOL systems and augmenting them with modern capabilities in the cloud.
Despite the advantages of the COBOL, it also has disadvantages. For example, the shortage of manpower. Therefore, most companies still plan to leave it, as COBOL developers are now retiring faster than COBOL. A Computerworld survey of more than 350 IT professionals found that just under half of them had already noticed a shortage – and that was back in 2014.
It’s not a difficult task to predict that we have less than five years left before there simply aren’t enough developers to maintain all the COBOL code out there. According to IBM, the average age of a COBOL programmer is 58 and around 10% of them retire every year. This translates to an estimated 84,000 unfilled mainframe positions by the end of this year. And when that happens, businesses that haven’t adapted are going to have a big problem.
In today's business landscape, companies face a crucial decision: they can either continue to maintain COBOL applications and grapple with labor shortages, or they can transition to modern programming languages. Some companies are trying to reorganize their old COBOL codebases using generative AI tools, as IBM offers. The most straightforward resolution is to transition away from COBOL in favor of contemporary alternatives. Consequently, it's highly probable that we'll witness widespread migrations from COBOL to languages like C#, Java, Python, and more in the years ahead. Fortunately, this kind of migration is easily automated.
In conclusion, the COBOL programming history stands as a testament to its enduring relevance in the world of computing. From its inception in the late 1950s to its continued use in critical sectors such as finance, government, and healthcare, COBOL has proven its worth. While it may be considered outdated in the face of modern programming languages and technologies, it remains deeply embedded in legacy systems that power essential operations.
As for the future, COBOL's fate will likely vary by industry and organization. However, a general tendency to move away from COBOL can be observed. Many are in no hurry to abandon COBOL, as rewriting millions of lines of code will take years, and will also cost a fortune. If you are looking for a solution to streamline this process, you should try automating the migration process with Ispirer Toolkit. While it may sound like a fantasy, it's designed to automate the migration to any modern programming language. With over 50 successful projects as evidence, you can trust that it delivers results. Since the transition is inevitable, it's better to do it on your own terms.