|
IBM Is Not Killing Off RPG III, RPG/400 in i5/OS
by Timothy Prickett Morgan
Every now and again, something in the rumor mill gets picked up and distorted in some way that gets a lot of people excited. Recently, I heard from a bunch of different people that IBM was inexplicably going to remove support for earlier versions of the RPG compiler and applications created with them from i5/OS. One rumor had it that IBM had already done so with i5/OS V5R3, and another rumor had it that IBM would do it with i5/OS V5R4.
Neither rumor, as it turns out, is true. So if you saw the same survey I did in a magazine from one of The Four Hundred's competitors asking you what you were going to do now that the RPG III (RPG/400) compiler has been withdrawn, you can relax.
To clear the RPG matter up, I went straight to the IBMer in charge of the RPG family of compilers for OS/400 and i5/OS, George Farr, who is technically the technical development manager for development tools at IBM's Toronto, Ontario, software labs. Farr was kind enough to dispel these rumors while at the same time providing me with some history about the various RPG compilers and runtime environments within OS/400 and i5/OS and to make clear IBM's position about earlier RPG code and runtimes and ILE RPG. He also gave me some insight into how much old RPG code is out there in the installed base, which was interesting as well.
First things first, let's briefly go through the history of RPG compilers and runtimes on the AS/400 and iSeries platform so we can get some RPG naming conventions that are often confused by newbies to the OS/400 platform. IBM has had an RPG compiler for minicomputers since the dawn of time--ok, the first Report Program Generator appeared in the 1960s and ran on the 1401 mainframes, which were the predecessors to the System/360 mainframes that were launched in 1964 and which also ran RPG. But even as IBM created the improved RPG II compiler in the 1970s for its mainframes, RPG arguably did not get cool (meaning go mainstream) until it was ported to the System/3X line of minicomputers, starting with the System/3 in 1969 and culminating with the System/36 in 1983. RPG III, the kicker compiler to RPG III, made its debut with the System/38 in 1978 and had specific features to deal with the integrated relational database engine at the heart of the System/38's CPF operating system.
(It's funny to think that the System/38 was built from the wrecked dreams of the ill-fated future IBM mainframe line, the System/380, and that if the universe were smart and legacy code on mainframes were not so intractable, this newsletter might be called The Four Hundred, but it would mean all big IBM iron. Given the fate of the System/38--brilliant, but not ubiquitous--the AS/400 apparently was almost called the System/40, following the naming conventions from System/3 to System/34 to System/38 to System/36 to System/32--the latter machines designed to fill gaps between the System/34 and the System/38. So, this newsletter was almost called The Forty.)
In any event, with the launch of the AS/400 in June 1988--yes, that was 17 years ago--IBM grabbed the RPG III compiler (which itself is written in PL/MI, a variant of PL/1) and made three copies of it and then tweaked them to create the System/36 Extended Environment, the System/38 Extended Environment, and the RPG III native compiler for the AS/400, which was eventually called RPG/400 by the installed base. As the AS/400 evolved, this RPG III-RPG/400 compiler kept evolving, but with OS/400 V2R2 in February 1992, IBM loosened up RPG with ILE RPG, which was called that to fit with the naming conventions of the Integrated Language Environment marketing/technical initiative that IBM was talking about at the time, and this eventually evolved into the free-formatted, C-friendly RPG IV environment that debuted with OS/400 V3R1 in May 1994 and eventually became Java-friendly, too.
Farr is pretty clear, as he has been for many years, that RPG IV is strategic and what IBM wants OS/400 shops to do is use WebSphere Development Studio and create RPG IV (as well as Java) applications. "As far as we are concerned, RPG III and RPG/400 are not strategic," Farr explained to me. "We want people to move to RPG IV and take advantage of the constructs it has." But not being strategic does not mean that they are not in i5/OS, nor does it mean that SEU, PDM, RLU, and other adjunct tools to earlier RPG incarnations have been removed from i5/OS or will be. Moreover, the System/36 and System/38 emulation environments that first appeared inside the AS/400 are still inside the iSeries. "Nothing that I know of will change this," says Farr. And considering that he is in charge of the compilers on the iSeries, if he doesn't know it, it isn't going to happen.
Now, having said that, would IBM like to remove RPG III and the System/3X emulation environments from i5/OS? Well, of course. "We would like to," Farr concedes, "because eventually customers have to get on board with RPG IV." But IBM does not seem to be inclined to force the issue with a stick approach, and it is holding out the automatic porting tools for converting RPG III to RPG IV as well as the flexibility of RPG IV as carrots to try to entice customers to move. The conversion tools are not perfect--some subroutines need to be tweaked to procedures, for instance--and no one, including programmers, want to learn a new thing just for the sake of learning it. The move to RPG IV has to be one based on sound business needs.
Many companies have apparently made that jump, so it is probably just a matter of time. Farr estimates that somewhere between 10 to 15 percent of the RPG applications running out there in OS/400 land are running it the System/36 or System/38 emulation environments, with another 30 to 35 percent being written in RPG/400. The remaining 50 to 60 percent of applications are written in RPG IV. So IBM is at least half way home, and maybe a bit further.
So, this does leave an interesting question? What would happen if IBM did remove these older RPG environments from i5/OS? IBM could be tempted a few years down the road to believe that it could push the issue. Well, if IBM did that, the company would sell a lot fewer iSeries servers and upgrades than it already does. And I think we all know that Big Blue doesn't want to do that. And as much as it wants to sell new application development tools to OS/400 shops, until the amount of code not on RPG IV in the installed base dips down to the 10 to 15 percent range--not the 40 to 50 percent range it is today--IBM cannot afford to do this. It has taken more than a decade for IBM to get about half the application code base to move to RPG IV, and it will take at least another five years before the situation gets anywhere near the point where IBM can even think about removing support. And then there is the last point: leaving in the support for the older RPG III environments does not cost IBM anything--except lost sales on new development tools, of course--but if it pulls the plug before the vast majority of the base is ready, it could truly upset the iSeries business, which could cost it a lot of money.
|