Reader Feedback on RPG: A Great Language with a Greater History
August 24, 2009 Timothy Prickett Morgan
Whenever you bring up the topic of the RPG programming language to the AS/400 community, it gets their attention, and Brian Kelly’s walk down memory lane for RPG in last week’s issue of The Four Hundred predictably resonated with readers. Here’s some of the feedback that readers sent to Kelly, offering advice to IBM and commiserating with the frustration that RPG programmers sometimes feel in a corporate computing landscape dominated by Java, C#, PHP, and other languages.
Thanks for your great RPG article today.
I did code in Fargo and the 1401 RPG, and I have a copy of the GI manual IBM 1401 Data Processing Division From Control Panel to Stored Program (copyright 1959). Someone at IBM had a great idea to bridge from unit record to the stored program 1401, and as an SE I helped several companies do that and it was really easy and fun.
Congratulations on being able and willing to make the bridge to the current technology and to be able to articulate your knowledge so well.
Hope all is well with you.
I am being weaned off the System i even after we just recently replaced our iSeries machines. I am on a steep learning curve with Visual C# 2008 (I like it), but notice Microsoft‘s bugs.
I sent a copy of your article to Mark Shearer and asked if he would forward my questions, which are yours too: “Web enabling,” enhancements to RPG to make it fully object oriented, including polymorphism, methods, and class (it’s mostly there).
Like you I’m an old timer with RPG and IBM unit record equipment. It has always been my understanding that RPG was originally created at General Electric and was used internally. Have you ever heard of this? In your story you use the Roman numeral I to note the original version, but the correct form is RPG, as we never knew the Romans would adopt it.
RPG without direct file processing, arrays, and the other goodies that came out in RPG II was all we needed (and a little BAL) to fully run our companies back in the 1960s.
Thanks for the walk back through time with RPG. I know four or five languages well, but I guess I’ll always like my first love the best. I just can’t figure out what Roman numeral ILE is. “E”???
One simple thing to add to the RPG language would be to run CL commands native, not only through QCMDEXC.
Also eliminate the need to write the command separately and define all the parameters again. The length and type of the parameters could be defined either on the parm statement or on the prototype, it is not needed to define in both places. Everything could be combined together.
But IBM is doing the opposite. It looks that it tries to kill the command interface, without having any better alternative. Many of the new APIs do not have an IBM command for them to run. User commands that are built for them are not standard. With the introduction of ILE procedures/module/service Programs, commands are abused, none of the new stuff is able to work closely with commands.
There is no possibility to build a command interface on the top of a procedure or module.
Imagine a complex command like OVRPRTF that needs to be called via a procedure interface. Here’s what it will look like:
CALLP OVRPRTF (*PRTF : *omit:*omit:*omit:10:15:*omit:*omit:*omit:54)
With a command, it is so simple and readable:
OVRPRTF FILE(*PRTF) LPI (10) CPI(15) OVRFLW(54).
And despite that, commands are such an excellent thing, all the new development (date-type parameters, long decimal variables, etc.) is bypassing commands.
Kudos on another excellent article.
As one who really enjoys programming in the new RPG and taking advantage of its capabilities (including the ILE stuff), I am gratified that there are still some that can appreciate its simplicity as well as the power of the language:
“The most amazing thing about RPG is that it still can be used for simple operations. Yet it can also perform at the sublime levels so far ahead of the current pack that no real computer nerds or eggheads who were honest with themselves could ever conclude that there is any reason why it is not the best computer language ever developed for everything.”
A few comments:
1. I think that the “everything” needs to be qualified to “everything business,” since scientific or lower level languages (e.g., Fortran and C) are probably better suited for non-business type of applications.
2. Since RPG has fallen “way” behind in the Web enablement and GUI arenas, I think this is a show-stopper from getting new blood or even serious consideration from the programming community nowadays.
3. Realistically, moving RPG to another platform, expecting full or almost the full range of services to be available to the program is a huge task, IMHO. Think about security, adoption, various APIs (including the C routines), commitment control, referential integrity (the last two being database specific, but the error handling needs to be built into the compiler), date data types, EBCDIC vs. ASCII issues, CCSID and codepage issues, *LIBL, display/printer/communications files, plus I’m sure you can think of many others.
Would IBM need to invent the RVM (RPG Virtual Machine) with RDBC drivers to all the popular databases?
I wish it could be ported, but I don’t see how it could be, from a practical standpoint.
Thank you for your comments and insights.
Perhaps it would be in IBM’s best interests over time to change the operating systems to support all of the advanced notions that come from the licensed internal code on the Power boxes and when the mainframe is on Power, the full underbelly of an advanced system could be there for all OSs to use. Each OS personality could theoretically stay intact while permitting access to a host of objects and methods that would not only improve the OSs, but also the programming languages with which they interface.
Where can superior OS technology go if not to where IBM i already is and has been for 30 years? Then all languages should be able to run the same on all systems even if there are quirks that the individual compilers need to compensate along the way.
Your comment on the Web is well taken. I am well versed on IBM’s rationale for not enhancing RPG to perform in this arena: IBM just doesn’t get it!
The really sad part, IMHO, is that IBM has spent untold millions developing stop-gap measures that could never fill the gap (WSG, WebFacing) instead of focusing on doing it “right.” Java and PHP are good strategic additions, in order to ADD to the available applications (keeping existing customers), but wouldn’t convince anyone not on the platform to switch over.
Thank you, Brian Kelly, for writing the memoirs for our old friend in Goodbye, AS/400, Old Friend.
If someone asks me about the history/pedigree of this most unique business platform–just call it an iBM–I will point them to your document.
Just wanted to say this for somewhat over a year now.