As we noted in a recent blog post, RPG IV will be 21 years old this fall. In thinking about how we could celebrate this auspicious event at the upcoming RPG & DB2 Summit, Jon got to reminiscing about the "birth" of RPG IV. The following are his best recollections of those early days, but he's getting on in years and so undoubtedly others will remember things a little differently.
Back in the late 1980s, RPGers were getting restless. While delighted with the arrival of the AS/400, most were disappointed that there was almost zero new capability in the "new" RPG400 version of the language. IBM then announced SAA (officially "Systems Application Architecture" but the late great Dick Bains coined the more accurate definition of "Systems Almost Alike"). COBOL/400 was announced as a part of the SAA family and that made a lot of RPGers very upset in hurry. It was bad enough that their favourite language had been shortchanged in the enhancement department, but now it appeared that IBM didn't even consider it to be strategic! Voices were raised and senior IBMers got an earful during the Sound Off sessions at COMMON.
To cut a long story short, the powers-that-be decided that RPG must be included in the SAA family and that meant producing versions for both mainframes and the late lamented OS/2. I was one of a number of IBMers who was not happy about this because we felt that too much of what people thought of as RPG was really the CL and externally described device and database files that surrounded it. There would be no such support in the SAA versions and without it we thought it would be a waste of effort, but SAA had a lot of political power behind it and it was soon full steam ahead. The result was that in February of 1991 SAA RPG was unleashed on the mainframe world.
This period also saw the beginnings of what we now know as ILE, but at the time it was known internally as NPM (New Program Model). Part of the motivation behind ILE was to improve the performance of the C language on the platform. There were many C based tools that we wanted ported to the AS/400, but the performance just wasn't there. Why? Because the C language is heavily dependent on a rich function library and the dynamic program call mechanism (as opposed to bound calls) of the AS/400 wasn't a good fit. The call path length was just too long. Enormous efforts had been made to improve the performance but the underlying operating system support proved to be just too slow. There were however no plans to produce an ILE version of RPG - C was the only compiler planned.
Meanwhile, back in RPG land, we had managed to introduce some incremental enhancements into RPG400, but it was becoming increasingly obvious that the underlying compilers were just too old and heavily modified to support the kind of extensive enhancements that were needed. Or at least to do so at a cost that we could ever hope to get into the budget.
So, we had two problems: first an aging compiler that was difficult to enhance; second a user community that was becoming increasingly vocal in its complaints about the lack of enhancements. The solution was to develop a new compiler - but the potential costs were prohibitively high. Perhaps we could convert the current compiler to a language that could be brought under the ILE banner? No such luck - the dialect of the PL language family we were using (PL/MI) had moved so far away from its siblings that it just wasn't a practical option.
But ... we did have a brand new SAA RPG compiler and what's more it was written in C and could therefore be compiled by the brand new ILE C compiler. Now that was an interesting possibility! By this time, our suspicions that (almost) nobody would buy the mainframe version of the SAA RPG compiler had been proven correct, and it was clearly on its death bed. In fact, it was eventually withdrawn from marketing in August of 1993. Perhaps, just perhaps, we could recoup some of the money invested in that Edsel by using it as the foundation for a new RPG compiler?
And that was the beginning of the skunkworks project that subsequently became the beautiful young lady who's 21st birthday we celebrate this year. But there was still a long journey ahead and you'll have to wait for a future blog to hear the next part of the story.
Note: Comments are moderated and will not appear until approved