Attendees seemed most excited by the new multifile support, which finally raises the number of files available in a CL program from one (the previous limit) to five (the new V5R3 limit). While saying that specifying a favorite CL enhancement is akin to a parent “not wanting to call any of their kids ugly,” Vig himself confessed that he's most excited by the capability to pass procedure parameters by value, due to the number of API procedures which CL application developers can call that previously were inaccessible from CL.
With the exception of enhancements to ILE-only capabilities, such as procedure calls, all the new features will be part of both the ILE (Integrated Language Environment) and OPM (Original Program Model) CL compilers. Because the two compilers share front-end code, IBM can just as easily make changes to both compilers as to restrict the changes to the ILE compiler only.
One new fact I gleaned from Vig's presentation was that most of the CL language enhancements can be run on V5R2 systems, although the CL programs containing the new capabilities must be compiled on a V5R3 system. Unfortunately, V5R2 will not support multiple files.
While the interest in CL among attendees wasn't surprising, what is surprising is the prominence IBM gave this portion of the announcement. CL made the cut for a presentation by IBM iSeries General Manager Al Zollar, as well as a high-level announcement briefing iSeries Network participated in prior to the announcement.
Considering the emphasis IBM places on new programming models that deliver browser-based interfaces and include Java, does this new awareness of CL signal a change in direction? I doubt it. Instead, what we're seeing is an ongoing recognition of realities in the iSeries world. iSeries shops have an enormous investment in existing applications, which they have no intention of abandoning.
There is no single best way to write applications and, for certain tasks such as printing, traditional iSeries development techniques offer more capabilities and better performance than their platform-neutral counterparts.
While many individual IBMers have always recognized these realities, IBM began publicly acknowledging them at a strategic level about a year ago. As a result, we've been seeing a shift in IBM strategy away from the infamous "hamburger ad" and towards a philosophy of coexistence.
What's new in this announcement is IBM's implicit recognition that CL is an essential part of most iSeries applications. As Vig pointed out during an interview prior to COMMON, the iSeries perspective on how customers will use the command line is different than other systems. In part this is due to the ease-of-use built into iSeries commands. A command line becomes much more attractive when it's supported by integrated command prompting and online help.
Of course, iSeries developers have always acknowledged the importance of CL, but IBM has often treated CL as an afterthought. For example, when IBM first shared its plans for ILE languages prior to V3R1, CL was not included. While that oversight was quickly remedied, ILE CL is essentially the same as OPM CL. V5R3 marks the first functional enhancements to CL as a programming language (as opposed to new and enhanced CL commands) since System/38 days.
I'm not suggesting (and it's a given that IBM is not suggesting), that there's no place for new application development methods in iSeries shops. Instead, the enhancements to CL will make it easier for developers to accomplish specific tasks with CL. Over time, as iSeries developers begin moving towards cross-platform applications, technologies such as XML and Java Struts will begin to supplant CL as the medium for communication between applications. However, in the current iSeries development environment, CL remains a key player and iSeries developers are pleased to see IBM recognize that fact.
Sharon L. Hoffman is a senior technical editor for iSeries NEWS.