Fortran and COBOL Today











PDF version of this report
You must have Adobe Acrobat reader to view, save, or print PDF files. The
reader is available for free
download
.

Fortran and COBOL Today

by James G. Barr

Docid: 00018014

Publication Date: 2202

Publication Type: TUTORIAL

Preview

Often considered obsolete, two mainframe-era languages, Fortran and
COBOL, are experiencing a resurgence. Fortran, which stands for “FORmula
TRANslation,” serves the scientific community while COBOL, which stands
for “COmmon Business-Oriented Language,” is used mainly to process
large-scale business transactions. But with the availability of
so-called modern languages, like Python, Java, and C, the present – and
future – utility of Fortran and COBOL are in question.

Report Contents:

Executive Summary

[return to top of this
report]

Mainframe computing – which originated circa 1960, and was eclipsed in mind,
if not necessarily market, share by later innovations, like client/server,
cloud, and edge AI – is "alive and well," and driving the transaction processing
operations of today’s largest corporations and government agencies.

Related
Faulkner Reports
Python Programming Tutorial
Micro Focus Company
Brief

Along with mainframe hardware, including IBM’s latest, the z15 model,
mainframe languages, like Fortran and COBOL, remain viable today, due in
large measure to the millions of lines of legacy code still in service,
but also to a programming community that still finds utility in these
groundbreaking compilers.

For the present generation of programmers raised on Python, Java, C, and
other contemporary languages,


  • Fortran
    , which stands for FORmula TRANslation, is a scientific
    and engineering language designed primarily for compute-intensive
    applications like mathematical simulations.


  • COBOL
    , which stands for COmmon Business Oriented Language, is
    designed, as the name implies, to process the millions upon millions of
    business transactions generated on a daily basis by the Banking, Retail,
    Healthcare, Telecom, and other essential sectors.

This report offers a brief history of Fortran and COBOL, a look at how
Fortran and COBOL are employed today, and, finally, how Fortran and COBOL
are positioned for future use.

A Brief History of Fortran and
COBOL

[return to top of this
report]

Fortran

Generally acknowledged as the world’s first programming language
standard, Fortran was created in 1954 by legendary mathematician John
Backus, who led a small development team of men and women possessing a
diverse set of skills – programmers, mathematicians, engineers, a
cryptographer, even a chess wizard. As team member Richard Goldberg
recalled fondly, “We were the hackers of those days.”

Figure 1. The Pioneers of Fortran

Figure 1. The Pioneers of Fortran

Source: IBM

As the primary author of Fortran, Backus, also famous for Backus-Naur
Form (BNF), a context-free grammar used to describe the syntax of
programming languages, understood that engineers needed the ability to
write their own programs. With the advent of FORTRAN (it was all
caps in those days to emphasize the formula translation or scientific
element), the torturous task of keying in as many as 1,000 program
instructions for a given problem could be reduced to as few as 47 lines of
FORTRAN code.

After three years of development, FORTRAN was unveiled in February 1957
at the Western Joint Computer Conference in Los Angeles. For the
first time, programming was accessible to mathematicians, scientists,
engineers, and other non-traditional programmers. Indeed, anyone
familiar with high school algebra could probably write a FORTRAN
program. Ken Thompson, the developer of UNIX, recalls that “95 percent of the
people who programmed in the early years would never have done it without
FORTRAN.” J.A.N. Lee, a leading computer historian,
calls FORTRAN “the turning point” in computer software, much as the
microprocessor revolutionized computer hardware.

While hardly an unbiased observer, IBM asserts, with considerable
authority, that FORTRAN “may well be
the most influential software
product in history
.”1

Owing to the vital role that FORTRAN plays in scientific computing, the
language has been actively developed since its inception, with new
editions like FORTRAN II, FORTRAN III, FORTRAN IV, FORTRAN 66, FORTRAN 77,
and Fortran 90 (the “FORTRAN” name was changed to “Fortran” in
1990). Later incarnations included Fortran 95, Fortran 2003, Fortran
2008, and the latest version, Fortran 2018.

According to analyst Deepu Benson, “Fortran 90 was very significant since
it brought in many fresh changes to the language like allowing free-form
source codes, recursive procedures, operator overloading, dynamic memory
allocation, etc. “[The] Fortran programming community today
generally advises the use of Fortran 90 or a later standard.”2

COBOL

Much like Fortran, COBOL, or rather the language that inspired COBOL, was
the product of another brilliant and dedicated computer scientist, Admiral
Grace Hopper. As detailed by analyst Patrick Stanard, “[in] 1952, [a
team led by Hopper] developed the first computer language compiler known
as A-O, which was able to translate mathematical code into
machine-readable binary code, making programming possible. Hopper’s
team then went on to develop another language called FLOW-MATIC which used
English words as programming constructs. In her search to use
English in programming languages, FLOW-MATIC became a sort of predecessor
to the modern-day COBOL. Hopper felt it was very important to use
more user-friendly languages in programming so people could easily adapt
and learn how to program.”3

Figure 2. Grace Hopper

Figure 2. Grace Hopper

Source: Wikimedia Commons

Officially, COBOL was the product of a US Department of Defense
initiative called CODASYL (or the COmmittee on DAta SYstems Languages),
which “drew on Grace Hopper’s FLOW-MATIC, but also Univac’s AIr MAterial
COmpiler (AIMACO), and IBM’s COMmercial TRANslator (COMTRAN).4

As described by Bola Rotibi, Research Director for Software Development
at analyst firm CCS Insight, COBOL “is a language that was specifically
built to be easy to use for encapsulating the application business logic
and accommodating the transaction processing requirements of the core
infrastructure systems that serve many organizations that operate in these
sectors.”5

PL/I

Offered for context, a third major language emerged during the early
mainframe era: PL/I, or
P

rogramming
L

anguage I.

PL/I was designed to support scientific, engineering, and
business applications. Developed by IBM as a Fortran/Algol/COBOL
composite, PL/I, which first appeared in 1964, is still used today, though
less commonly than either Fortran or COBOL.

Fortran and COBOL Today

[return to top of this
report]

Fortran

The current Fortran standard, as endorsed by the International
Organization for Standardization (ISO) is “ISO/IEC 1539-1:2018: Information
technology – Programming languages – Fortran – Part 1: Base language."

The current Fortran version, correspondingly, is Fortran 2018.

While in 2022, Fortran barely registers in most language popularity
polls, often missing the top 20, Fortran remains a strong favorite among
serious scientists. In a 2015 commentary, entitled “Why physicists
still use Fortran,” Dan Elton asserts that “Fortran is still a dominant
language for the large scale simulation of physical systems, i.e.,
for things like … :

  • “Astrophysical modeling of stars and galaxies,
  • “Hydrodynamics codes,
  • “Large-scale molecular dynamics,
  • “Electronic structure calculation codes,
  • "Large-scale climate models, etc.

“In the field of high performance computing (HPC), of which large
scale numerical simulation is a subset, there are only two languages
in use today – C++ and ‘modern Fortran’ (Fortran 90/95/03/08).”6

Among the many factors favoring Fortran are:


  • The ready availability of legacy code, particularly plug-and-play
    scientific subroutines

    – As Elton wryly observes, “[physicists]
    are not in the business of writing code … they are trying to
    understand the nature of reality.”7


  • The easy-to-learn programming concepts and conventions

    – As a
    fellow physicist, this writer managed to absorb and apply the basics of
    FORTRAN IV to college-level research projects while juggling classes in
    Thermodynamics and Linear Algebra.


  • The performance-driven nature of Fortran

    – As mathematician
    Martin D. Maas reminds us, Fortran has always been optimized for
    speed. The developers “[make] it very hard to write slow code in
    Fortran; while in other languages, most notably in C, you [have] the
    freedom to do things that would lead to slow code.”8


  • The fact that Fortran is still being actively developed

    – In
    the US, by the US Fortran Programming Language Standards Technical
    Committee.

  • The absence of any real Fortran alternative

    – A relatively new language called Julia, which is capable of incorporating
    Fortran functionality, is viewed, at least presently, as a companion
    offering.

While some Fortran aficionados advocate, often impatiently, for new
features, a larger subset seems to favor greater portability and
performance. As Ondřej Certik, a scientist at the US Department of
Energy’s Los Alamos National Laboratory (LANL) recently revealed, “[when]
I talk to people who use Fortran, they tell me
the number one thing
they want is compilers that can run their code on modern hardware,
efficiently

– not just run, but take advantage of it.”9

COBOL

The current COBOL standard, as endorsed by the ISO is "ISO/IEC 1989:2014:
Information technology – Programming languages, their environments and system
software interfaces – Programming language COBOL."

The current COBOL version is IBM Enterprise COBOL Release 6.3.

In 2022, as in years past, COBOL is the dominant, if not necessarily
preferred, language of business transaction processing. Consider the
Banking sector, for example:

  • According to Reuters, 43 percent of US banking systems are built on
    COBOL, with a remarkable 80 percent of in-person transactions and 95
    percent of ATM interactions relying on the language.10
  • As recently as 2012, the Bank of New York Mellon was responsible for
    maintaining 112,500 different COBOL programs, totaling an astronomical
    343 million lines of code.11

The early – and continued – success of COBOL as a business automation
tool was aided by its simple, businesslike organization. COBOL
programs are divided into four primary divisions:

  • The Identification Division, which describes the program;
  • The Environment Division, which details the inputs and outputs;
  • The Data Division, which defines the program’s variables; and
  • The Procedure Division which includes the program logic, as expressed
    by executable statements invoking Data division variables and
    Environment division I/O.12

Like an old car, however, fueled by leaded gas, COBOL is often unsuited
to an unleaded present. Among the most common complaints:

  • COBOL is
    verbose
    , requiring more lines of code than modern-day
    languages.13

  • COBOL is
    out-of-step with modern digital technology
    , or an
    analyst Joel Khalili laments, COBOL was “designed long before the
    internet existed” and “the language is not equipped to facilitate the
    level of interaction and dynamism required by mobile and web
    applications.” According to Barry Baker, VP of IBM Z Software,
    COBOL had to concede part of its market space to newer, more relevant
    languages like Python and Java.14

  • COBOL is
    woefully understaffed
    , with too few programmers
    available to adequately maintain and enhance the COBOL program install
    base. The scope of the problem was revealed in the run-up to Y2K,
    and persists today. Most recently, for example, COBOL-based
    systems were overwhelmed by the number of unemployment claims received
    in the wake of the COVID-19 pandemic. Governor Phil Murphy of New
    Jersey was compelled to issue a public call for volunteers to help
    update critical apps. “We literally have a system that is 40-plus
    years old,” he complained.15

  • COBOL is “
    too hot to handle
    ,” with many organizations reluctant
    to address apparent COBOL-related deficiencies due to fear of breaking
    vital applications and disrupting essential operations.16

Despite the obvious obstacles, some present-day COBOL enthusiasts point
to the following:

  • COBOL 6.3 is a
    promising


    edition
    , offering a new,
    feature-rich version of an old language. As critiqued by analyst
    Patrick Stanard, COBOL Release 6.3 “contains quite a few advantages that
    tie in nicely to the IBM z15 system’s processing capabilities.”17
  • COBOL has powerful
    industry allies
    , IBM, of course, but also
    Micro Focus, one of the world’s largest enterprise software providers.18
  • COBOL
    training is available
    , with Micro Focus reporting that
    IBM “offers fellowships and training programs in COBOL for young IT
    specialists, and has trained more than 180,000 developers in 12 years.”19

The challenge for COBOL programmers, and the organizations for whom they
work, is curating an often massive portfolio of COBOL applications, some
decades old. Which applications should be retained “as is,” which
should be removed, and, most challengingly, which should be “modernized”?

As analyst Scott Carey observes, there are four basic “COBOL
modernization” strategies:


  • Commercial Off-the-Shelf (COTS)

    – Find a similar piece of
    commercial software and affect a direct replacement.

  • “Lift-and-Shift”

    – Move the application from its present legacy
    platform to a more modern platform, without making any design changes.

  • Total Rewrite

    – This is the scary one. “Break down [the]
    applications and rewrite [them] in a more modern language,” adding new
    features and functions in the process, and improving the user interface
    (as necessary).

  • “Code Refactoring”

    – As Carey explains, “This involves some
    restructuring of the code, often through automated refactoring software
    from specialist providers. This technique maintains the existing
    business logic but enables better performance and portability, without
    drastically changing the core functionality.”20

The Future of FORTRAN and COBOL

[return to top of this
report]

All things considered, the future trajectory for both Fortran and COBOL is
probably flat.

While neither language is likely to attract many new adherents, the
existing user base should remain fairly stable, particularly as both
Fortran and COBOL are under active development, and new versions offer the
promise of new features and functions.

Fortran

Regarding the issue of language turnover, analyst Sejuti Das counsels
current Fortran programmers that switching to a new language would be a
“waste of time” if working on open-source Fortran-related projects. He further advises that “Fortran [would not] be a wrong move for new
programmers, if [they are] willing to make a career in scientific
computing.”21

One development that could change this calculus, however slightly, is the
creation of
Julia
. Making its debut in 2012,22
Julia is billed as “the fastest and easiest high-performance computing
language for artificial intelligence, machine learning, analytics, data
science, modeling, and simulation.”

According to The Julia Project, the Julia language “is used by more than
10,000 companies worldwide, including AstraZeneca, BlackRock, Google,
Intel, Microsoft, Moderna, [and] Pfizer, as well as NASA, the Federal
Aviation Administration, and the Federal Reserve Bank of New York.” While not intended to replace languages like C and Fortran, Julia enables
the calling of C and Fortran functions.23

Going forward, organizations should:

  • Encourage scientific computing users to adopt the language (or
    languages) best suited to their projects, including, of course, Fortran;
  • Improve programmers’ Fortran skills through periodic, project-related
    training; and
  • Introduce new languages like Julia (as appropriate) to supplement
    programmers’ options.

COBOL

While musing about COBOL’s mortality, analyst Joel Khalili expressed what
most experts firmly believe: “If COBOL were to go extinct, we’d all be
in serious trouble.
24

Just like the big banks during The Great Recession of 2008 and 2009,
COBOL is “too big to fail,” or, more accurately, “too big to fix.” Leon Kappelman, an IT professor at the University of North Texas, predicts
that replacing existing COBOL code could cost “between $4 and $8 trillion
dollars.”

Even on a much smaller scale, Kappelman questions the “business case” for
migration, arguing that COBOL systems are “quite structured and fairly
maintainable. Think of the back office systems of banks, brokerages,
insurance, and government organizations that are capable of processing
massive amounts of transactions efficiently and quickly. It’s just
overhead and there’s not really much, if any, strategic value in replacing
them.”25

Going forward, organizations should:

  • Recruit or train more COBOL programmers (to deal with pandemic-like
    spikes);
  • Improve programmers’ COBOL skills through periodic training; and
  • Pursue a COBOL Modernization Program designed to produce an effective,
    efficient, and sustainable portfolio of COBOL and non-COBOL
    applications.

[return to top of this
report]

References

About the Author

[return to top of this
report]

James G. Barr is a leading business continuity analyst
and business writer with more than 40 years’ IT experience. A member of
“Who’s Who in Finance and Industry,” Mr. Barr has designed, developed, and
deployed business continuity plans for a number of Fortune 500 firms. He
is the author of several books, including How to Succeed in Business
BY Really Trying
, a member of Faulkner’s Advisory Panel, and a
senior editor for Faulkner’s Security Management Practices.
Mr. Barr can be reached via e-mail at jgbarr@faulkner.com.

[return to top of this
report]