Introduction


Why COBOL is still in demand?


COBOL is the best programming language that uses side-by-side with mainframe computing. COBOL is essential for the global economy because most financial applications run on a Mainframe System with COBOL as a back-end.

Some information about its usage as of today -

  • Most of the banking transactions use the Mainframe COBOL applications. Example - About 96% of ATM transactions use COBOL code in the background.
  • COBOL language is over 63 years old and still powers up to 80% of in-person transactions in different sectors like banks, insurance, commerce, etc. Even IBM and the mainframe community state that nearly every credit card purchase or ATM transaction uses mainframe applications written in COBOL.
  • Up to 71% of Fortune 500 companies use the mainframe with COBOL as a back-end application to process their day-to-day transactions.
  • 60 Million hospital patients receive healthcare services using COBOL apps.
  • 500+ MILLION mobile phones connect to COBOL applications directly or indirectly.
  • 2K+ containers and 20K+ retirement plans are managed by programs developed in COBOL.
  • According to a professional's observation, "More than Billion lines of new COBOL code" is being written every year. So there is still a lot of COBOL development under progress.

So, "COBOL is everywhere and quietly supporting the systems that we are using in our day-to-day activities".

Does COBOL have a future?


Yes, it has. COBOL is the programming language that refuses to retire for more than 6 Decades. As discussed above, 71% of Fortune 500 companies use Mainframe systems. Even if the migration started today, it might take decades to complete.

According to Cameron Seay, "there will be a shortage of COBOL programmers within the next 10 to 15 years because nobody's teaching it nowadays".

So, COBOL is the most wanted programming language for our day-to-day activities today. It's not dead. It's not dying. It will not die in the near future and will be with us for more than decades. So interested people can start their career with mainframe technologies".

What is COBOL?


COBOL is an acronym for COmmon Business-Oriented Language, primarily developed for business, finance, and administrative system needs.

COBOL History -


  • First COBOL Version - COBOL is a high-level programming language initially developed by the CODASYL Committee (Conference on Data Systems Languages) in the early 1960s.
  • First COBOL Compiler - CODASYL developed version assigned to the American National Standards Institute (ANSI) for improvements. The addressing mode feature of AMODE 16 (16-bit).
  • ANSI COBOL 1968 - ANSI developed a standard form of the language in 1968 to overcome incompatibility between different versions. The version was known as American National Standard (ANS) COBOL.
  • COBOL 1974 (OS/VS COBOL) - ANSI published a revised version of (ANS) COBOL, which contains an additional set of features. The addressing mode feature of AMODE 24 (24-bit).
  • VS COBOL II (1988) - ANSI published another revised version with new features like scope terminators, including END-IF, END-PERFORM, END-READ, etc. The new feature of AMODE 31 (31-bit).
  • Enterprise COBOL 2002 and object-oriented COBOL - IBM, Fujitsu, and Micro Focus were involved in developing object-oriented syntax. They started working to introduce object-orientation features in the early 1990s. It was finally approved by the ISO and published in late 2002.
  • Enterprise COBOL v4.1 (2007) - COBOL 2002 suffered from poor support, and no compilers completely supported the object-oriented standard. So the most popular revised version was developed and released with the standard compiler's support in 2007.
  • Enterprise COBOL v5.1 (2013) - The next popular revised version was developed and released in 2013.
  • Enterprise COBOL v6.2 (2017) - This verion developed with the continuous delivery (CD), JSON enhancements, and introduced new compiler options.
  • Enterprise COBOL v6.3 (2019) - It is developed with AMODE (64-bit), UTF-8, intoduces some new compiler options.
  • Enterprise COBOL v6.4 (2022) - Enterprise COBOL 6.4 is the current version and developed with COBOL/Java interoperability, interoperability between AMODE 31 (31-bit) and AMODE 64 (64-bit)

Advantages -


  • It is easy to read as it has English-like syntax.
  • Relatively easy to develop, use, and maintain.
  • Have many testing, analysis, and debugging tools.
  • Structured high-level and self-documenting programming language.
  • Compatible with the previous versions.
  • Free and Open-source.
  • Process huge volumes of data with ease.
  • Platform independent.
  • Portable across the platforms.

Disadvantages -


  • Code might look very long because of its structured programming.
  • It requires more compilation time depending on program length and resource availability.
  • Can't use it for scientific calculations.
  • It has a very wordy syntax.
  • It requires more coding lines for specific logic compared with some other known programming languages in the market.
  • The programmer needs to understand machine language because sometimes needs to analyze the dump.

Different types of COBOL programs -


Based on the COBOL usage and program execution, the programs are divided into two types. Those are -

  1. Batch programs.
  2. Online programs.
BatchOnline
The programs run by using JCL are called Batch programs. The programs run in the CICS environment are called Online programs.
Batch programs with COBOL can have the below combinations -

  • Simple COBOL programs
  • COBOL + DB2 programs
  • COBOL + DB2 + VSAM programs
  • COBOL + DB2 + VSAM + IMS DB programs
Online programs with COBOL can have the below combinations -

  • COBOL + CICS programs
  • COBOL + DB2 + CICS programs
  • COBOL + DB2 + VSAM + CICS programs
  • COBOL + DB2 + VSAM + CICS + IMS DB programs
  • COBOL + DB2 + VSAM + CICS + IMS DC programs
The batch program doesn't require a terminal to run. The online program requires a terminal to initiate processing.
The program drives the batch execution. The data drives the online execution.
Batch execution needs the input in the file or SYSIN before submitting the job and can see the output once the job is completed. The user has to wait until the job is completed. Online execution needs the user to provide the input on the screen, and the outputs are instantly displayed on the same screen.
The outputs take time during batch execution. The outputs are instant during the online execution.
Batch execution requires exclusive control over the resources, whereas another task needs the same resources has to wait until the first task releases the resources. Online has shared access across the resources, and multiple tasks can use the resource parallelly.