What is COBOL (Common Business Oriented Language)?
COBOL (Common Business-Oriented Language) is a high-level programming language for business applications. It was the first popular language designed to be operating system-agnostic and is still in use in many financial and business applications today.
COBOL was designed for business computer programs in industries such as finance and human resources. Unlike some high-level computer programming languages, COBOL uses English words and phrases to make it easier for ordinary business users to understand. The language was based on Rear Admiral Grace Hopper's 1940s work on the FLOW-MATIC programming language, which was also largely text-based. Hopper, who worked as a technical consultant on the FLOW-MATIC project, is sometimes referred to as the "grandmother of COBOL."
Before COBOL, all operating systems had their own associated programming languages. This was a problem for companies that used multiple brands of computers, as was the case with the United States Department of Defense, which backed the COBOL project. Because of its ease of use and portability, COBOL quickly became one of the most used programming languages in the world. Although the language is widely viewed as outdated, more lines of code in active use today are written in COBOL than any other programming language.
Popular features of COBOL include:
- Simplicity and standardization. COBOL is an easy-to-learn, standard language that can be compiled and executed on a variety of computers. It supports a wide syntax vocabulary and features an uncluttered coding style.
- Business-oriented capabilities. COBOL's advanced file handling capabilities enable it to handle huge volumes of data. COBOL still handles more than 70% of the world's business transactions. COBOL is suited for everything from simple batch reporting to complex transactions.
- Universality. COBOL has adapted to six decades of business change and works across numerous platforms and devices. The language offers debugging and testing tools for almost all computer platforms, and new COBOL products, compilers and development tools continue to be announced every year.
- Structure and scalability. The logical control structures available in COBOL make it easy to read, modify and debug. COBOL is also scalable, reliable and portable across platforms.
COBOL in the cloud
For applications written in COBOL, the cloud offers another platform for rapid deployment and modernization. Because COBOL is both adaptive and highly portable enabling, most COBOL systems can be quickly re-deployed to a virtual or cloud platform with no change.
COBOL's inherent design, its highly adaptable nature and the commitment from industry vendors such as Micro Focus and IBM have made this possible. COBOL's support for containers adds even greater portability for application development, testing and deployment across a hybrid IT deployment.
According to the TIOBE Index, which tracks the popularity of programming languages, COBOL is ranked twenty-fourth among the top fifty languages as of May 2019. Core business applications, often written in COBOL, underpin mission critical services for many global organizations.
For applications written in COBOL, the cloud offers another platform for rapid deployment and modernization. Because COBOL is both adaptive and highly portable enabling, most COBOL systems can be quickly re-deployed to a virtual or cloud platform with no change. COBOL's support for containers adds even greater portability for application development, testing and deployment across a hybrid IT deployment.
An application written in the late 1960's using traditional ANSI 68 COBOL could be re-deployed with little change to the cloud as of 2019. Switching to the cloud, however, can be a significant infrastructure project.
Helping organizations modernize core COBOL systems to new platforms means helping plan and execute the technical, operational and cultural elements of such a change. Typical challenges can include a lack of understanding of the effort required for testing and user acceptance. For any critical system, target platform deployments will require adequate testing and validation before placed into production.
An additional challenge area may be the skills needed for an organization before and after the move. The skills needed to move the application from one platform to the next might be very different skills from those required for day-to-day operations. In both cases, experience in large-scale modernization projects helps identify the key technical and operational considerations during the planning phase.
History of COBOL
In 1959, COBOL-60 was developed by the Conference on Data Systems Language (CODASYL). IBM announced that COBOL would be their primary development language in 1962. A standardized version of COBOL was approved by American National Standards Institute (ANSI) for commercial use in 1968. By 1970, COBOL had become the most widely used programming language in the world.
Today, COBOL is still commonly used at financial institutions and by government agencies. Even though the number of programmers with COBOL experience steadily decreases as those who learned COBOL while it was popular enter retirement age, COBOL is once again being taught in some universities -- this time to support application modernization and the DevOps movement. The increased demand for COBOL programmers has led to increased compensation in this area and innovative training offers. Over the past decade, IBM has educated more than 150,000 developers on COBOL and mainframe skills through fellowships and training programs.
While many organizations still use COBOL and training is on the rise, the lack of skills and burdensome text-based code is beginning to be replaced or integrated with more modern coding languages, such as Java, .NET, and C++. This can be a complicated and costly process, as these programs are often run on legacy mainframes that are difficult to replace, and because of the sheer amount of code still in use. In fact, as many as 75% of rewrite projects on legacy COBOL systems fail due to cost, time and difficulty.