Jon Paris and Susan Gantner

IBM i Consultants, Developers, Educators and Apostles

Aug 3, 2015
Published on: IBM Systems
1 min read

In the last part of the story I mentioned that we had started to go "open Kimono" on the design of RPG IV and that this subsequently caused problems ... That's where we pick up the story this time.

Once we started to show regular RPGers the outline of the design we were proposing, we started to see some very negative reactions. VERY negative. In fact at one point the negative reviews were running at over 90% - significantly different from the reactions of our original review groups.

Now before I go any further, I should mention that the free-form design we were working with at the time was nothing like the current free-form. In some ways it was closer to CL with keywords being used to avoid ambiguity. We thought that that familiarity would make it easier for people to accept. We were wrong.

Needless to say this negativity caused a major stir among our management, both in Toronto and Rochester, who were also seeing negative reactions in their customer briefings. We were, after all, in the process of spending millions of dollars on this project - if nobody would use it that was going to be a huge waste of money. This situation was compounded by the history of one of our senior management in Toronto at the time. They had previously been involved in a project where a multi-million dollar compiler rewrite had failed miserably due to major incompatibilities with the version it was supposed to replace. It had cost the company still more millions to remedy the situation and even then, many years after the majority of issues had been addressed, customer acceptance was still at relatively low levels. Compatibility was not our issue, but certainly customer acceptance was. We were told in no uncertain terms that unless we could remedy this situation and find a way to increase customer acceptance levels then the project could be cancelled.

Back to the drawing board.

We studied what the customers liked and, perhaps more importantly, what they did not like about the new design. The only conclusion we could reach was that it was the free-form nature of the new language - for some reason people liked their columns. Comments like "I might as well switch to COBOL if I'm going to have to code like that" were common, as was "It's just not RPG". They did however want to have longer field names and to have many of the other limits removed. Things that could not be achieved with the RPG III compiler. It was also apparent that the majority also liked the idea of being able to use expressions to simplify math and logical operations. They just didn't like the free-form framework.

How could we keep what they liked of the new features while retaining the nature of RPG (i.e. columnar)?

In the end, the design that emerged was the one that you will be familiar with from the V3R1 release of the language. A hybrid that was still fundamentally columnar in nature, but made extensive use of keywords for things like optional features on file and field definitions. It also introduced the notion of Extended Factor 2 which allowed us to support logical and arithmetic expressions via the new EVAL, IF, WHEN, etc. opcodes. That in turn opened the door for us to start introducing Built-in-functions and that had huge potential for a simple way to add enhancements to the language.

We took this design out on the road and the reactions were incredible. From 90% rejection to 80%+ acceptance in a single step. Many of the team, myself included, were not thrilled with the new design (we were fans of free-form coding) but recognized that there was a very real possibility that it was going to be this or nothing. And nothing was not an option for us.

Having committed to the new design and got management sign-off on completing the project, we once again assembled our external review team at a meeting in Toronto. And just when we thought our troubles were behind us, everything threatened to fall apart again. Many of this review group were incensed at what they felt was a betrayal of our mission to move the RPG language forward. The arguments were long, loud, and quite ugly at times. But knowing that it was almost certainly "this way or no way" we stuck to our guns and tried to focus on getting them to review what we had and to make suggestions to improve it. By the end of the meeting we knew that some of the group were still very disappointed, but felt that we had made our point and that they would support our efforts to publicize the new language.

It turned out we were wrong yet again! There was still one more skirmish to be fought in the battle to bring a new version of RPG to a waiting world. But you'll have to wait until the next episode to hear about that.

Note: Comments are moderated and will not appear until approved