Why I Learned RPGLE
When I told my friends I was learning RPGLE, they thought I had gone a bit crazy. Why would I want to learn that “old” programming language?
My quest stemmed from a common issue that I experienced first hand. As a web developer, I would often hear, “The business logic is located in RPG code and we don’t know what it does. We will have to wait and ask the RPG programmer to explain it to us before we can continue with the project, but that person is too busy now.”
Or worse yet, “We are completely redoing our ERP system because we can’t find RPG programmers.”
From a business continuity standpoint, that’s frightening. All the investment in customizing your business logic to work perfectly with your particular business, and your intellectual property is understood by only 1 or 2 people in the organization? That’s like owning a wildly successful donut shop that serves thousands of people a day, but only one person knows the secret recipe for the donuts.
If we have learned anything from the pandemic, it’s that IT must become more flexible, cross train, and build up our own people. The pandemic caused us to look for new ways to innovate so business could continue. To do that on the tech side of business, we need to educate, enhance and support the current IT staff we have. Yet too often web programmers receive little help in learning RPG due to budget restrictions and overloaded RPG programmers who have little time to mentor web programmers.
So what can a programmer do?
Accept the challenge
Coming from a background in design and front-end development, my very first time logging onto the “green screen” was daunting. What was this black and green lettered screen? Did I just go back in time? It felt scary and old. It wasn’t like any IDE I was used to.
However, I quickly learned how powerful the IBM i system is.
As a PHP programmer, I often had to work with IBM i data sent to me from an RPG program. Or I would be asked to rebuild an RPG report in a web-based format and make sure the logic worked the same as the report on the ”i-Series”. However, I couldn’t even read the RPG code, let alone navigate my way through it. I wanted to be able to understand its concepts and be able to make sense of it myself.
So, when the offer to learn RPGLE came to me, I took a deep breath and dived in. I bought a book, started reading the first couple of chapters, and wondered what I got myself into!
Find your community
But then I found my saving grace—RPG class meetups with imPower Technologies. Not only could I take the classes on my own time schedule and watch the videos as many times as I needed, but once a week we would have meetups to discuss any issues or questions we had. Jim Buck, Michelle Lyons, and their current and former students would help each other work through the problems.
I quickly found these sessions invaluable. When learning something difficult, it’s nice to have others there with you, people who have the same issues and questions you do. You are not alone. This is a great feeling, especially for those who come from small IT departments.
Best of all, even after you complete the course, you can continue to attend the meetups. Free of charge!
Use a familiar IDE
The other key factor in my success learning RPG came in the form of a familiar IDE. Liam Allan’s Code for IBM i extension to Visual Studio allowed me to bring RPG code into VS Code so I could use some of the same tools for editing, searching, and commenting. The familiarity of the IDE gave me more of a comfort level and helped ease anxiety.
Even though I’m not programming in RPG every day, taking the RPG class has allowed me to fast forward PHP projects by minimizing time spent waiting on language barriers. I now understand how RPG works with the system, how to debug issues, and so on. I can build test environments. It has even exposed me to other programming languages such as Cobol.
The main thing, though, is that I now understand where the RPGLE source lives, how it calls files and programs, and how the programs are compiled.
I can now read the secret recipe. And that is a great feeling.
If one knows IBMi concepts, and know another language like C, I think RPG is pretty easy to pick up, especially in the free form.
It’s a simple and straight language for working mainly with the database and fast interactions, where it excels.
If you work with complex business logics involving tens of db tables and hundreds of db fields, with computations involving fixed point arithmetics and guaranteed transactionality, you realise pretty much the productivity of the IBMi + RPG…
What scares like “scared” you is the “green screen”: part of this is to blame on IBM, they should have improved the 5250 stream years ago, providing a nice *native* conversational GUI biased toward developing ERPs inside the system (then IBMi would have been basically unbeatable, a single machine that “have all”, RPG, native DB2, PASE opensource, PHPs…..).