COBOL Turns 60
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.
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
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
- People and skills
- Development processes
- Personal productivity
- 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.
Procedure Division
Looking to the future, and, in fact, running there already, IBM has extended COBOL to natively support Java, XML and JavaScript Object Notation (JSON). As Koo points out, “You can’t just run everything with batch or everything with green screen, so you want to open up this application, extend it to actually work with mobile, cloud and beyond.”
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