Why and how COBOL is still used

Jan Kammerath
11 min readApr 16, 2020

If you work in any sort of financial institution, companies like airlines, larger hotel chains or any other business that processes customer records for more than 20 years now, you might have come across COBOL applications. The “Common Business Oriented Language” was designed in the 1950s for mainframe computers of that era to build early computer software for businesses. It was designed by a committee consisting of government bodies, computer manufacturers and consultants. Academic bodies were not involved which is also one of many reasons why it was never very popular for academic work. I don’t want to get into the history of COBOL as that is perfectly described in numerous sources elsewhere, like the Wikipedia COBOL article. I will rather elaborate on the advantage of COBOL in the 21st century, why and how it is still used by many businesses today.

Most COBOL software today runs on modern mainframes and not on any museum piece of a mainframe as many people would assume given the age of COBOL as a language.

COBOL is not like any other language

If you are a software engineer and enjoy the wonderful possibilities of any general purpose language like C, C++, Java, JavaScript, C# and many others, COBOL is a completely different animal. It is not a general purpose language and therefore not fit for the jobs that your favourite high-level language can perform. Considering that COBOL was invented long before UNIX and the C language saw the light of day, it is no surprise that their ancestry is entirely different. COBOL was invented, as the name says, for business applications. The following list hightlights the main differences compared to our modern-day C-style languages with curly brackets.

  • All variables, or “data-items” as COBOL calls them, are global
  • Code is divided into distinct divisions
    (Identification, Environment, Data, Procedure)
  • As of COBOL ’85 there are no parameterised functions
  • COBOL introduced object orientation only in the 2002 specification
  • The well-known data-types (int, float, double) are not present in COBOL
  • COBOL itself does not provide splitting code across multiple code files
  • “Data-items” are defined with the PICTURE statement (abbr. “PIC”)
  • COBOL code can be very long in a single file and GOTO was often used
Jan Kammerath

I love technology, programming, computers, mobile devices and the world of tomorrow.