From ENDDO to LIKEFILE - my 20th RPG anniversary
barbara_morris 120000DX5W Comments (5) Visits (3005)
Today is the 20th anniversary of my arrival at IBM and also my arrival in the AS/400 RPG Compiler Development department. The day I arrived, almost everyone was on vacation - there were only 3 other people working. It was near the end of development for V1R3.
My first couple of days were spent on an off-site RPG II self-study course, with no actual computer but only coding sheets to work with. Much of my time was spent scratching my head wondering why anyone would actually choose to code in this bizarre language.
When I got back, one of my co-workers showed me the online education system and told me to go through all the lessons, to learn about jobs, output queues, message queues, joblogs etc. (Too bad they took that education system away - it was very good.) He also told me to write an RPG program, using RPG/400 - nobody in the department was using RPG II except to investigate PMRs. I vaguely recall that it was a program to read all records of a file and output them to a printer file. And then a program to just do some calculations and write to a printer file. That's when I learned about the mysteries of "LR". ("What do you mean, the last record of the file? This program doesn't have a file." (Thanks, Y K, if you're reading this. You were a good teacher.)
The next week, with most people still on vacation, I started working on PMRs and APARs. On my first day, I got a call from support asking me to talk to a customer and explain why the SETLL opcode was behaving the way it was. Talk to a customer? About SETLL?!? What on earth is SETLL?" "Can you call me back in an hour?", I asked. "Sure." I found the SETLL opcode in the manual and read what I thought was a very clear explanation of how it worked. There was a paragraph that answered the customer's question exactly. When I finally was talking to the customer, I just read out that paragraph. The customer was very pleased with the clear explanation.
Around my sixth month, I got my first development project! It was to update the END opcode to allow ENDIF and ENDDO etc. During my design review, I was a bit taken aback by the amount of discussion about whether it should be just ENDDO to end DO/DOU/DOW, or ENDDO/ENDDU/ENDDW. Strangely, I can't remember whether just-ENDDO was my original design, or whether the design was changed to just-ENDDO during the meeting. I do remember that the key reason for just-ENDDO was to make it easier to change from one do-loop to another.
Along the way, some of the more memorable enhancements I've developed were: SORTA for overlay arrays, subprocedures, %EDITC/%EDITW, call-interaction with Java, LIKEDS, and XML-INTO, and local-files and file-parameters.
It's 20 years since that first RPG II course, and I'm still in the team that develops the RPG compilers for IBM i.
And now I can't imagine why anyone wouldn't want to code in RPG.