Years after their inception, current versions of COBOL and the mainframe are stronger than ever
By Reg Harbeck
On April 8, 1959, a team led by Grace Hopper met for the first time to begin developing the specifications for the COBOL programming language. A day short of five years later, on April 7, 1964, the computer platform that would come to be most closely associated with this great programming language was announced: the IBM System/360 mainframe. Much of the same thinking, experience and requirements went into the creation of both, so their functionality was consequently a natural match.
COBOL and Mainframe for the Global Economy
It has now been 60 years since COBOL’s inception, and 55 since the mainframe was announced, and the current versions of both are stronger than ever, due to the proven reliability of each. The combined duo naturally bears the mantle of processing the business and data of the global economy.
With the advent of these important anniversaries, it bears emphasizing how this powerful team of language and platform have borne their responsibilities and continue to bear them in ways we can all gratefully take for granted.
“We have a strong roadmap for COBOL. Our intent is to continue to improve performance of COBOL workload with new hardware features, advanced optimization technology and new language support (such as 64-bit and UTF 8) to enable clients to future-proof their business-critical applications.”
Roland Koo // IBM offering manager for Compilers on IBM Z
COBOL Runs the World Economy
Decimal math: That’s what business processing is all about. And character data—vast amounts of displayable character data. The mainframe architectures get this.
“System/360 at its heart has a whole instruction set around the decimal data type,” IBM Fellow and IBM Z CTO Kevin Stoodley points out. “Decimal is also the basic computation type of the COBOL language. But I think those choices fundamentally come from meeting the needs of the business context and having the ability to seamlessly integrate both hardware and software innovation to satisfy that business need.”
Another aspect of the duo that makes business sense is code that can be readily inherited and maintained. Programmers move on, but programs that work just last and last. As Roland Koo, IBM offering manager for Compilers on IBM Z points out, about 250 billion lines of COBOL code are running the world economy.
Because IBM’s original System/360 promise of future compatibility was so well-kept, even the programs that were written first had to last. Hence COBOL’s extreme readability, with verbs, structural elements, variable names and procedure names that, when read aloud, practically describe what a program is doing in plain English.
Taking Advantage of IBM Z Advances
While COBOL is built for simplicity, the IBM COBOL team, compiler and ecosystem have continued to be very dynamic and innovative, developing industry-unique capabilities driven from the longevity, business criticality, and scale of the COBOL programs that it supports, and responding to the unique needs of the COBOL community. This includes easy-to-use tools for debugging, doing post-failure analysis and scanning COBOL source code for program understanding and dependency-based builds.
As “Captain COBOL” Tom Ross, IBM senior software engineer and deep COBOL expert, explains, IBM has added features to the COBOL compiler such as the RULES option, which tells the compiler to reveal all of the “secrets” that it knows about a program that maybe even the original programmer didn’t. RULES can point out code that may not be behaving as intended. It can give advice on how to make code run more efficiently and, per a 2017 client request, now includes the capability to have the compiler tell you which data items (variables) were found in a program but weren’t referenced. This was added via the product's “continuous delivery” stream last year. It can help a developer “clean up” a data structure that was copied or included, which is an important functionality in programs that have been evolved and enhanced over a period of many years by a large team of programmers.
Another important area for COBOL innovation has been taking advantage of the platform advances on IBM Z. As IBM has introduced new architectural features on the mainframe, IBM COBOL has been enhanced to benefit from them, producing spectacular CPU savings. “We put a feature into z14 called the Vector Packed Decimal Facility and then we invented 22 instructions to exploit that facility,” Koo says. “What we found was that if you purely do packed decimal calculations, the application is 94% faster, just because we got rid of all the latency and all the inefficiencies.
“We have a strong roadmap for COBOL. Our intent is to continue to improve performance of COBOL workload with new hardware features, advanced optimization technology and new language support (such as 64-bit and UTF 8) to enable clients to future-proof their business-critical applications," he adds.
COBOL Compiler Improvements
Interestingly, one of the most important advances in IBM COBOL has been to build on a non-COBOL back end while keeping the language-specific front end.
With great improvements in compiler technology over recent years and decades, despite the broad and deep client investment in the status quo, it became important for COBOL to take advantage of these enhancements. In 2007, Stoodley led the charge as IBM “ate our own cooking around modernization” in four dimensions:
People and skills
Team collaboration tools and the technology assets in the product
As Stoodley points out, a core asset was the COBOL front end, which “encapsulated the compatibility of the language, and you can’t break compatibility and really bring a language community forward—there’s just too much disruption by doing that.”
So, the COBOL development process and team were updated, taking advantage of the advanced back-end technology, agile methodology and enthusiastic, young new additions to the team. This led to new major releases of the product as well as frequent minor releases and a sustainable model for the next 60 years
To quote Ross, “We have full capability to process JSON or XML so your back-end applications can be services used by clients on a smartphone very easily, and that's what our clients are doing, so COBOL is adapting to the modern world.”
That’s important for many reasons, including the fact that COBOL isn’t going away. As Stoodley made clear, even if an alternative platform had all the qualities of service that we take for granted in the combination of IBM Z and COBOL, the sheer effort to move to a new platform would be prohibitively massive. This is a serious problem if you want to attract and keep good new technologists.
“It’s very hard to make that economic equation close, just because of the challenging nature of the migration itself, and the fact that when you get to that new system, you’re going to have a maturity curve to climb again in terms of the stability, performance scaling and everything else about the system as well as just the business logic being known to be correct,” Stoodley notes.
More COBOL Resources
The following resources will help you dig deeper into COBOL on the mainframe:
IBM Enterprise COBOL for z/OS
EnterpriseCOBOL Version 6.2 Webinar: “Performance and Features Are Brand New”
A blog about the beauty of COBOL
A COBOL case study