You’ll find a number of people spieling about COBOL being old, inefficient and revolting, especially to new programmers, in one way or another. But current mainframe programmers writing COBOL, many of whom are now millennials, know that couldn’t be further from the truth.
A question for COBOL critics: Where have you been the last five years? Prior to 2013, I would have said that COBOL is stale, isn’t growing, not exciting and has questionable return as a language to learn for new computer professionals. I think the exact opposite today.
There have been innovations and enhancements added to COBOL that would make Jean Sammet and Grace Hopper smile with glee—and now those modernizations are coming down a Continuous Delivery pipeline for COBOL V6.1.
COBOL V6 Continuous Delivery
To deliver new features customers demand, IBM has developed new and not-so-small compiler enhancements in an Agile environment that supports COBOL V6 Continuous Delivery. Many IBM laboratories are implementing Continuous Delivery, including but not limited to PL/I, CICS, DB2, IMS and MQSeries. Additionally, bugs in COBOL have gone from a trickle, as in IBM Enterprise COBOL V4.2 and earlier, to almost monthly fix lists for COBOL V5/6.IBM’s COBOL optimization efforts to leverage the new hardware features in the z Systems mainframe have spurred customers to ask for new features and functions in COBOL that will make programming in it easier. And not just features to assist migration or use on the z Systems mainframe, but more. For example:
- Features added UNICODE capability for some intrinsic functions, XML functions, UNBOUNDED tables and groups, SMF89 generation to track usage
- Features added VSAM extended addressability, COBOL 2002 standard conformance, IBM extensions to COBOL
- Features added JSON support
How Recent Compiler Options Help You
IBM COBOL V6.1 Continuous Delivery compiler options and features that were recently delivered are described in some detail below. If you wish a more extensive description and usage, refer to the hyperlink for each APAR number:
- INITCHECK: Locates uses of uninitialized data items (September 2016 APAR PI68226)
- NUMCHECK: Validates PACK-DECIMAL or BINARY data (February 2017 APAR PI71625)
- PARMCHECK: Assists detecting programs with mismatch in size of arguments passed and parameters received from CALLing programs to CALLED programs (April 2017 APAR PI78089)
- INLINE: >> INLINE [ON | OFF] compiler directives and INLINE compile option allow manual control of compiler optimization process within COBOL source code, useful in paragraphs and sections referenced by PERFORM statements (April 2017 APAR PI77981)
IBM COBOL V6.2 Continuous Delivery introduces even more changes to assist migration:
- A new compiler option, COPYLOC, allows you to specify an additional location to be searched for copy members during the library phase.
- New RULES suboptions, OMITODOMIN|NOOMITODOMIN and UNREF|NOUNREFALL|NOUNREFSOURCE, provides you with additional compiler controls.
- ZONEDATA(NOPFD) and ZONEDATA(MIG) effects are expanded to MOVE statements, comparisons, and computations for USAGE DISPLAY or PACKED-DECIMAL data items that could contain invalid data (digits, sign code, or zone bits), with actions more compatible with earlier compilers.
- An additional warning message indicates when a CICS DFHCOMMAREA is larger than 32 KB.
- The CICS Reserved Word Table supplied by IBM is updated.
Reasoning for COBOL V6 Continuous Delivery Model
So, what’s the point of COBOL V6 Continuous Delivery? Effectively, IBM is producing features that, when tested and ready, are delivered in the normal service stream. Note that certain customers have requested these features and have a specific reason and need, usually as an aid to assist migration from older COBOL compilers to new optimized COBOL releases.
Significantly, there is no “new compiler” release, but instead PTFs only to this latest COBOL V6release. With COBOL V6 Continuous Delivery, IBM can effectively make the latest version more attractive and instill more business value to the z Systems platform for those millions of COBOL programs that “run the world.”
What AMI DevX Is Doing
AMI DevX is treating each IBM COBOL V6 Continuous Delivery PTF as “in-service maintenance” and will support these new features as a maintenance item as we get them. Some may take a while to support, others may be quick to deliver.
AMI DevX continues to collaborate with IBM development before and after general availability of the Continuous Delivery features to ensure that our solutions fully address customer needs. We applaud IBM’s efforts to deliver new features and functions that leverage the power and the breadth of the recent z Systems hardware technologies. Fast always beats slow, and IBM COBOL is moving fast so we need to keep pace to ensure our products are enabled sooner than later.
AMI DevX intends to support new COBOL V6 Continuous Delivery features when available through the maintenance process that is already set up with customers for our products. That means PTFs when necessary and monthly or quarterly rollups of support for these features (cumulative maintenance). Customers that have immediate needs for these new features or Continuous Delivery PTFs should make that known by opening a AMI DevX support call.
What Customers Must Do
But there’s a problem: Most customers don’t have an existing process to apply monthly maintenance or pre-setup environments to do all the testing that is required to validate functional operation with new COBOL V6 Continuous Delivery.
IBM’s moving COBOL into the new Agile age, and customers need to move with it to allow these new COBOL features to be quickly adopted, tested and implemented. We’ve found that numerous problems reported in the field are due to missing maintenance for both IBM COBOL and ISV software.
Customers that are implementing the most recent IBM Continuous Delivery enhancements, say using the March 2018 FIX LIST for COBOL, must obtain and install the AMI DevX fixes to match. This will require opening a call to support to ensure the absolutely latest are installed..
The need for quick and accurate testing is evident. This is the perfect opportunity to consider implementing more Agile solutions in a DevOps environment. Tools to help in COBOL code quality will be helpful, reduce time and resources spent. Solutions such as Topaz Workbench and Topaz for Total Test can make your testing automatic and reduce time in test validation.
Optimization Is King
Mainframe compiler optimization isn’t new. IBM OS/VS COBOL V2.4, the 1983 version of venerable COBOL, had this feature and so does every compiler up to and including IBM Enterprise COBOL V4.2. Unfortunately, for more than a few reasons, optimization wasn’t widely used, subsequently languished and hence was given little care, attention and feeding it deserved.
In 2013, IBM Enterprise COBOL V5 marked the revival of IBM’s mainframe initiative to instill new life into compiler optimization and finally take advantage of customer investments in the new hardware features on the z Systems processors. Finally, customers could get more ROI for their large mainframe hardware purchases.
The new COBOL V5 effort to revive optimization didn’t happen overnight, but over years. It has been five years since COBOL V5 hit the streets in June 2013 and COBOL optimization is still evolving. We’ve gone through four compiler versions, from V5.1 to V5.2 to V6.1 to the most current V6.2. Continuous Delivery will now accelerate that process.