January 26

2 comments

History of the IBM RPG programming language

By NickLitten

January 26, 2013

history, programming, RPG, rpg2, RPG3, rpg4, RPG400, RPGLE, SYSTEM38

*RPG – NO, RPG Developer doesnt mean that I write Role Playing Games, primarily aimed at men in basements pretending they are fit young elven women and running around casting spells 😉

So, as an RPG* Developer I am definitely biased towards IBM’s best and most versatile language. IBM RPG has evolved massively from the early Report Program Generator that it was designed to be. The latest Incarnation of RPG is a leading edge web -savvy object oriented SOA language.

Here is my personal version of how RPG has evolved:

  • 1960’s(this is a decade of code evolution): RPG was introduced but called something else. Dunno, much about this as I was only 3 years old and was busy learning to walk. Programmers started the decade wearing sharp 1950’s style suits and ended it wearing tie-dyes and Greenpeace badges.
  • 1970’s: RPG II was introduced with the System/3 series of computers. It was later used on System/32, System/34, and System/38 and then the System 36 (!), with an improved version of the language. RPG2 was a beautiful language using a logic cycle, arrays and data structures and internal file layouts. Complex, hard to master and quirky… but strangely addictive.
  • Ahhh the system 34 those were the days1984: RPG III was created for the System/38 and its successor the AS/400 . RPG III significantly departed from the original language, providing modern structured constructs like IF-ENDIF blocks, DO loops, and subroutines. The is the true building block for the modern RPG language structure.
  • 1990: RPG/400 with a much cleaner syntax, and tighter integration with the integrated database. This language became the mainstay of development on the AS/400, and its editor was a simple line editor with prompt templates for each specification (type of instruction). I cant believe how many programmers, even today, still write in RPG400 ignoring all the fantastic code enhancements in later versions. It proves that RPG400 is robust but come on…
  • 1994: RPGLE (aka RPG/ILE) was released in. RPGLE offered a greater variety of expressions within its new Extended Factor-2 Calculation Specification. All older RPG3 and RPG400 code could be upgraded to RPGLE and still looked more spaced out with the step up to longer 10 character field names.

Wikipedia says:

System/38 was a descendant of the abandoned IBM Future Systems project, which had been designed as the replacement for the System/360 and System/370mainframe architectures. System/38 offered more capacity than the previous IBM computer system, System/34. Somewhat confusingly, System/38 chronologically preceded System/36 which was a successor to the System/34.

System/38 was superseded by the AS/400 (which also supported System/36 data & programs, at least to some extent). The AS/400 evolved into the iSeries, which in turn evolved into the System i. The System/38 legacy lives on in the enterprise-class IBM POWER Systems server which superseded System i in 2008.

  • 2001: RPGLE was even more greatly expanded and now sometimes referred to as RPGIV with the new operating system (OS400 V5.1) With a more web focused design and many modular elements meant RPG had evolved into a web friendly architecture.

Just to confuse things from this point onwards RPG is sometimes called RPG IV, sometimes called RPG5 or sometimes just RPG. For the sake of clarity I will call this level of RPG’s evolution RPGLE. Definitely the largest change to RPG is that you can now break the RPG source code out into a free style format, no longer being limited to column based and inline with the more popular languages like Java and C++.

Each subsequent release of IBM operating system included many code tweaks and enhancements to this new modern RPGLE language

  • History of the ibm rpg programming language 12006: OS/400 was renamed i5/OS to correspond with the new IBM System i5 branding initiative; the 5 was later dropped in favor of just System i.
  • 2008: In March i5/OS was renamed IBM i as part of the Power Systems consolidation of System i and System p product lines. The new Power Systems Hardware also adopt more mainstream version numbers, substituting v6.1 for the twenty year old V1R1M0 notation.
  • 2009: IBMi 6 released and some minor code enhancements made to RPGLE.
  • 2010: IBMi6 is now firmly established. IBM announce they are discontining ongoing support for green screen source code development and introduce the Rational Developer Software Suit (RDi) – an excellent Windows based code IDE (a rewritten version of the old Websphere code tools) The newest version of OS is referred to as IBM i 7.1 and fully supports the RPGLE language, as well as many others.
  • 2011+: Some new exciting developments are in the pipeline and we are all poised for the new branding of RPG(?) for the latest version of RPG designed for web front ends.

Since the turn of the century, after realising that the world didnt end with a giant Y2K Fizzle, I have used the free-form syntax for the bulk of new code development: It’s easier to read, simpler to maintain and can be followed by programmers who are fluent in other languages because of it’s layout similarities and common codeword’s. Obviously older programs are maintained in the same version of RPG3/4/LE with each program modification taken into consideration.

RPG’s Free-form syntax is a huge improvement to the RPG language and has many productivity advantages. Developers are finally no longer bound by the fixed columns of traditional RPG calculations. Now you can simply enter your RPG logic in a natural left-to-right fashion, similar to the coding style in other modern languages (i.e. Java and Visual Basic).

While the free-form syntax only is allowed in the area where C specifications are normally entered, it is definitely a huge step in the right direction.

Roll on RPG… keep evolving…. thats what I say.

  • Ive a question Nick..
    Do you by any chance remember what the forerunner to CL programs where on as400? I worked as a consultant for a company that still had a lot of RPGII and III programs on it, and in particular the II pgms were called by this forerunner to CL. but I can’t remember for the life of me what it was. It was very basic and very easy to use, although equally very easy to get completely wrong! I remember putting an accidental loop in one of these and it nearly brought the system down.. and they had a hugely powerful system!!
    Just wondering 🙂

    • Hi Ellie, CL has always been CL, right back to System/38. You maybe thinking of OCL, which ran on S/34 & S/36, and was somewhat supported in the S36 special environment on the AS400.

  • {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

    Join the IBM i Community for FREE Presentations, Lessons, Hints and Tips

    >