Modernizing RPG Programs – Learn the RPG History first
I had email email from an old work colleague this morning. He was a windows programmer, with limited exposure to RPG, but works in a company that is driven by a huge, old, complex RPG3 application that has changed little over the last decade.
He is looking into “learning the old style RPG 3 and then looking at modernizing RPG into free format RPG ILE” and was asking if there are any good resources to help with that.
For a good software developer, with experience of other languages, reading modern RPG ILE is straightforward but understanding the old stuff is mystical and shrouded in the mists of time.
The trouble is there are lots of online resources for existing RPG programmers to help them modernizing old RPG and upgrading old AS400 applications but they are all focused on teaching the established programmers the new tricks to help them (finally) start to grasp new technology.
Whoops – I nearly went into a rant about gray haired programmers who refuse to evolve and grasp the latest advances from IBM and RPG in particular. #deepbreath and back on track
But, there are few places that teach new programmers how to understand RPG in all its flavours from twenty year old column based and logic cycle through to new cloud connected OO’ish style.
We need some simple on line training courses to introduce RPG to software developers working on other platforms. Modernizing RPG applications is FUN who wouldn’t want to work on it? 😉
The IBM I marketplace is buzzing and has been for a couple of years now… lots of code modernization projects out there.
As the older programming brigade, sunset off into their retirement years they are leaving behind billions of lines of RPG code and millions of programs that need to be dusted off, modernized and re-factored to work in the modern world of Internet, web services and open-data sources.
AS400 Modernization can be Simple
There are lots of companies out there, offering products that simply capture the 5250 data stream and reformat it to present the data in a modern web-page style.
But, is it really possible to go from 1990’s AS400 style, or more recent iSERIES applications to modern web friendly layouts at the click of mouse?
The answer is a YES and a NO.
The jump from old Green Screen AS400 applications to Modern web page style and mobile screens is more than just screen-scraping a nice web-page over the top of the old green screen. The RPG code that drives those applications is still written in the old fashioned, linear style of yesteryear. SO, if you want to just make your screens pretty then use a front end tool – it will look pretty but perform slowly.
“How can I get modern fast front end screens on my IBM i application?”
RPG Modernization – upgrading from RPG to modern RPGLE ILE
The devil is in the details as they say. The only way to truly modernize an AS400 or iSeries application written in RPG over the DB2 Database is to dive into the code. Focused on RPG Application Modernization, developers will take existing RPG applications which are designed to create 5250 individual data stream or printed reports and re-write and modernize that old RPG3, RPG400 code.
This process is called modernization or refactoring.
Modernizing RPG applications is more than just upgrading from any early version of RPG. It includes database redesign, adoption of SQL data techniques. Radical changes to program logic, exploding dinosaur programs into bite sized business logic chunks. Sometimes, a different language is best placed for one of these logical chunks of business logic so different languages will be selected as needed.
The mission to create the type of powerful, modern, Web-based applications that your customer and employees are looking for is a complex one.
If it was easy – everyone would have done it right?
IBM has published a rather snazzy redbook with the succinct title of “Modernize IBM i Applications from the Database up to the User Interface and Everything in Between“. The focus is on modernizing RPG, changing the mindset of older linear RPG programmers and focusing on upgrading the traditional “green screen” UI to web and mobile. Welcome to the wonderful world of IBM i application development.
Learn about preferred practices for modern development. Use modern tools for the modern world. Incorporate data-centric programming for success: The world of business applications has become a fast-moving, ever-changing environment. The web, mobile computing, and the cloud have quickly followed the impact of graphical interfaces. The community is facing an ever-changing environment and it must ensure that applications can be easily enhanced and maintained when dealing with these new requirements.
IBM Modernization Propeller Heads
It’s a gripping read.
Pour a cup of Horlicks and get on it…
Ready for some more AS400 modernization?
I’ve been involved in some heavy RPG modernization projects recently. I enjoy it just a little bit too much. I decided to write some articles and also record some real time video of code uplift and RPG modernization:
Modernization – From AS400 to ISERIES to IBM i on Power Systems
Learn the history of AS/400, the replacement iSeries machines and then to modern IBM POWER SYSTEMS. Internet connectivity is integral to modern eBusiness – Learn how to work with IBM i Webservices to create new interfaces and modernize old ones.
Recently, I had a bad time when I proactively changed some old school programs (RPGIII and RPGIV) to free format to improve maintenance and readability (even performance using SQL statements). My boss didn’t like that… “If it’s not broke, don’t fix it” they say, pulling back everything for the next release. The resistance to change is HUGE, they don’t want to use new practices or programming techniques to modernize the system. I am a young iseries programmer (30 years old) and I believe modernization is a must since it is happening in differente programming languages (web development is a perfect example).
Hey Nick. I am Abel. Nice Job.
This blog adds some practical value. It definitely helps to understand modernization in a more implemented way.
Thank you.