IBM i Modernization – Life After RPG
March 30, 2022 Jose Caso Jacobs
How an IBM i business approaches legacy application modernization doesn’t differ from application modernization on any other platform. Well, there is one slight difference. Many of those IBM i businesses have the added weight of replacing working legacy applications for the simple fact that RPG fell out of mainstream coding decades ago. The code is efficient and perfectly runs mission-critical apps, but there are fewer and fewer programmers around to maintain that code.
Colleges and universities stopped teaching RPG before Y2K was even a concern. Developers that learned RPG in the 1980s and early 1990s were 30 or 40 years from retirement. There was no need to modernize applications that were crushing a million lines of data in milliseconds. All while the “newer” tech was struggling behind bloated servers and microchips designed to handle everything from music to videos, and Word docs, and everything else that wasn’t business data.
As “newer” tech got faster and faster, businesses started to adopt web technologies and cloud strategies. Largely, IBM i companies stayed on the tried-and-true path of on-prem apps coded in RPG because they worked and were reliable. As the pending mass exodus of retiring RPG programmers crept closer and closer, there still wasn’t an urge to modernize.
This is how we got into the situation we are in today; millions of RPG programs running thousands of mission-critical apps, and now with an ever-dwindling number of RPG programmers around to maintain that code.
Knowing that these RPG applications need to be modernized, what options do IBM i businesses have? The good news is that there are several IBM i modernization tools and legacy application modernization strategies, but refactoring your legacy RPG code is probably the best approach.
A Closer Look At Refactoring
Refactoring can involve reworking, reorganizing, or converting your legacy code to another, more adopted language (most often object-oriented languages like Java) to make it more compatible with the cloud and modern web services. Another option that is gaining traction is refactoring legacy code with low-code. This is often done at a fraction of the cost and time versus opting for the traditional software development route. There are three primary options when looking to refactor your RPG programs:
Option #1: RPG Conversion Tool
The most tempting option might be to use a conversion tool that promises to convert your legacy RPG code into an efficient app using modern languages. However, there is one major issue with this approach, the new app is not efficient. The applications refactored this way are often much slower and require significant modifications to perform at the same levels as the old RPG program.
Why is the new app not as efficient if it utilizes modern languages? Simple, RPG is a procedural language, and the language they are converting to are object-oriented languages. They are fundamentally very different approaches to programming. Going from procedural to object-oriented requires a complete rewrite to fully utilize the benefits of the new language. Simply trying to port RPG code to a language like Java will only add to companies’ technical debt, not help reduce it. Programmers will have to maintain, add functionality, troubleshoot, and upkeep the new, poorly refactored application.
Option #2: Open Source To The Rescue
If a conversion tool isn’t a viable option, then why not just refactor in a completely new open-source app? This is a much better option than the former but has some significant considerations. While open source is “free”, it usually ends up costing the business time, money, and security. This is because it adds complexity to development. Because of the added time with open-source, developers will either need to speed up development with paid tools or heavily rely on third-party libraries. The latter can cause severe security exploits.
Aside from the above-mentioned issues, young talent is getting harder to acquire. Talented young developers are getting harder to attract and retain. There also aren’t enough developers entering the workforce to keep up with demand. To put it in perspective, there are going to be more tech job openings at Amazon over the next five years than graduates looking for jobs. And that is only Amazon!
Option #3: Visual LANSA Hybrid Low-Code App Development
The third option addresses everything above plus increases app development output while utilizing your current resources. Using LANSA’s low-code app development platform allows soon-to-be retiring RPG developers, as well as recently hired junior developers, to create full-stack applications easily. Visual LANSA’s unique approach to app development, combining low-code drag-and-drop methodologies with modern language structure, means anyone on your development team can create gorgeous and efficient applications.
With Visual LANSA, you create user-friendly front-end interfaces and data-crunching back-end database apps in the same IDE using the same language for each. Developers learn one simple language to create a variety of applications including customer-facing and mission-critical internal applications. Plus, Visual LANSA apps can call RPG and CL programs which give businesses flexibility as to how they modernize their legacy apps.
Don’t Wait To Start Your RPG Modernization
How you decide to modernize your legacy apps will depend on your situation and resources. Visual LANSA offers a considerably easier path to legacy application modernization than using open-source languages. While both Visual LANSA and open-source offer long-term solutions and less technical debt than an RPG conversion tool, don’t overlook the time-saving benefits. Visual LANSA can create full-stack applications with one language, in one IDE, incorporating low-code techniques. Open-source offers the illusion of being less expensive, but as development times lengthen, additional tools are purchased, and developers become more scarce, the perceived benefits of open source software fade fast.
Want to find out additional ways to approach app modernization on the IBM i? Check out the “Why Migrate When You Can Modernize?” white paper and learn more in-depth knowledge of future-proofing your legacy code.
Jose Caso Jacobs is product marketing manager at LANSA.
This content was sponsored by LANSA.
RELATED STORIES
Transferring Low Code Benefits Into The IBM i
Visual LANSA Customers Can Now ‘Portalize’ Their Apps
Idera Bolsters Visual LANSA 15
LANSA Revs Low-Code, UI Modernization Tools
LANSA Bought By Software Conglomerate Idera
Visual LANSA Goes Low-Code With High Tech Update
LANSA Shows Off Responsive Design Capabilities
LANSA Adds jQuery to Visual LANSA
We need to talk about NEW applications. Modernization is important but it does not expand the ecosystem. Neither does PASE, no one buys an i just to run apps in PASE.
Expand the ecosystem. To put a finer point on it: expand the QSYS ecosystem.
Any competent programmer in a language (not a CASE tool) can very easily learn RPG in a class. I did, and so did nearly every other RPG programmer. For the past 20 some years there has been only random and sporadic need for an RPG programmer, requiring extensive experience, specific domain knowledge, and usually relocation, and yet the employer had their pick of applicants. That seems to be changing recently, but slowly.
When there is a need for RPG programmers, then there will be RPG programmers.
RPG has evolved into a modern programming language. It is best suited for back-end development. Most everyone uses java or .net for their front-end UI to the IBM i now[, because that is the strength of java and .net]. It is even possible to use Swift or Objective-C for an Apple platform UI. Using SQL stored procedures or data queue support for the “contract” between front-end and back-end applications is a good, easy to support solution.
I agree with Ralph Daugherty’s statement, “When there is a need for RPG programmers, then there will be RPG programmers.”
The sky is NOT falling!