Yesterday I saw RPG code for the very first time. It was quite a beautiful sight with columns of code neatly lined-up; green characters against a black background.
This is code in the literal sense: impenetrable to the untrained, unfathomable unless you understand the esoteric notation. I saw variables that begin with the pound sign £1, £2, all beautifully aligned in columns.
Operations denoted by a single character. File and Queue names dazzling with significance to those who know them, but seeming like random character strings to the uninitiated.
Breaking the columns were broad bands of comments, structured to appeal to the human eye. Both readable and meaningful with dates and developer’s names, designed to help with the inevitable maintenance challenge.
As a programmer of event-driven and object-oriented languages, of Java and C#, visual basic and scripting languages, terms such as RPG, iSeries, System 38 and IBM midrange computing, have always seemed the preserve of a generation of pioneering developers, many of whom I trained as they made the move over to Windows programming.
Now I saw their green screen world for the very first time. I recognised a feeling of complete incomprehension, of being adrift with nothing familiar to hold onto.
Modern programming practices encourage readability, encourages descriptive code. We strive to reflect the data model of the business in the source code; business words for variables; natural language pluralisation for collective nouns and actual business procedures for operations. This hardly seems like code, more like the instruction set we know it to be.
The boys and girls I’ve been working with this week have my utmost respect. They are masters of several languages not just RPG, but also XML and Java as well as the language of a complex business which they know inside out. Hats off to them I say.