RPG Programming from AS400 to IBM i

If you are a software developer then you will know that RPG is an IBM programming Language. It’s also a Rocket Propelled Grenade. It’s also an acronym for Role Playing Games. This blog will have lots of waffle about being an RPG Programmer and just the occasional explosion or online sexy elf.

RPG Programmers create and maintain computer programs written in that language.

RPG has was first introduced decades ago, in a much more basic form, on early IBM System3X machines. Years later, it improved and evolved with the IBM AS400 systems. It evolved more on the replacement iSeries and System-i machines. The current IBM operating system IBM i supports all these old versions of RPG but the current version of RPG is known as RPGLE (or sometimes called RPG4 /Freeformat) and looks nothing like the early versions. It’s a modern free format language (sort of like Java) and it’s a joy to code with.

I am a computer programmer and I specialize in IBM’s RPG language but I also speak several other computer languages. This means I create and maintain computer software (aka: programs.) for the IBM i operating system but I can mumble and order a beer on other systems  😉

Just like you may speak several languages, or perhaps just speak one language but understand many dialects of that language, programmers will typically speak several computer languages or specialize in one language but understand various versions (which are like dialects) of that language – just like Northern English is the same as Southern English, but with lots of tweaks and changes – older RPG3 has the same relationship with its modern free format RPG ILE cousin.

My professional career has been filled with jobs working with IBM Computer systems mainly written in the IBM R.P.G. Language.

I’ve worked over twenty years and watched the RPG language evolve from the old days of column based code on the System/3x and AS400 thru to the early internet days of the IBM iSeries and now onto the modern and fully cloud connected IBM i Power Systems.

RPG HISTORY: RPG is a business language originally designed to generate paper reports for management back in the days before touch screens and smart devices. The Report Program Generator language has evolved so far beyond it’s humble beginnings the acronym bears not relation to what modern RPG looks like. It is used to power internet webservers, shopping cart software, it drives major distribution systems, casinos and banks worldwide.

RPG is the language that powers businesses all across the world. Quietly. Humbly. Amazingly few people have heard of it.

I’m a Senior RPG Programmer and Technical Consultant on the IBM i platform. I know other languages but I specialize in this wonderfully quirky beast called RPG.

What does the job of RPG Programmer mean?

IBM as400 iSeries IBM i rpg programmerAs an RPG Programmer you will probably specialize in creating software using the RPG language and more importantly, maintaining old RPG programs and fixing, improving and re-factoring them.

Personally, I mainly work as a freelancer – typically contracted on 6, 12, 24 month projects to support older IBM AS400 and IBM iSeries machines and upgrading old RPG code to modern standards. But that’s not always the case. Some clients have old RPG programs which have literally been running for decades and they dont want to change the programs just to add some small functions. Sometimes we leave the program in old-style and just give it a good polish up 🙂

So – An RPG Programmer is a software developer focused on developing and maintaining software applications running on modern IBM i Servers that have evolved from the earlier AS400 and iSeries machines.

What is a typical work day?

On any given day an RPG Programmer might work on tasks ranging from creating new code to maintaining 20 year old program code (written in very different looking versions of the same RPG code). It’s a fun job and it keeps you on your toes.

  • Analyze, design, develop and maintain IBM i software written in RPG, RPG ILE, RPG-FREE, and SQL languages
  • Follow functional specifications to create technical documentation or pseudo code
  • Create new RPG programs or enhance existing ones
  • Troubleshoot business processes to find database problems
  • Debugs existing software to identify and resolve issues
  • Using Change Management techniques to test software fixes to ensure quality
  • Suggest improvements to business logic to help users work smarter or get results quicker
  • Implement newly created code and fixes into existing software.
  • … this list can go on and on.

From RPG Programmer to IBM i Software Developer

Programmers have grown to use multiple languages.

A modern IBM i software developer will understand RPG, CL, SQL, JAVA, C#, PHP, XML, JSON, HTML and plenty of other acronyms

A modern IBM i programmer writes modern code with reusable components using service programs, modules and binding directories

A modern IBM i programmer fiendishly enjoys re-factoring legacy RPG column based code to /freeformat

A modern IBM i programmer rides motorcycles, drinks black coffee and is the envy of the modern world

*cough*

🙂