This week's entry was written by Jorge Gutierrez, senior application architect at BAC|Credomatic Network in San José, Costa Rica.
To an outsider, the legacy world of an IBM i is inhabited by strange and unknown creatures such as 5250 screens, flat files, columnar programming, printer files and SEU. All of these “monsters” can be intimidating to anyone who has heard about the legends of old RPG programming. Fortunately the new ILERPG language has increasingly enabled savvy developers from other much younger worlds to naturally assimilate IBM i’s best business programming language.
Our experience has shown that with proper motivation, skilled Java and C++ programmers are able to learn ILERPG in less than two months. For initial training we use Manta Technologies Inc's virtual courses, followed by a collection of readings gathered over the years from sites such www.easy400.net, www.scottklement.com and www.systemideveloper.com.
However, training and mentoring needs to be guided by three basic principles in order to guarantee permanent adoption of the language:
1. Teach Spanish before teaching Latin. Resist the temptation of teaching young padawans the old ways of RPG. Anything prior to /Free format RPG should be taught on a need-to-know basis.
2. Talk like a teenager. Recent younger programming languages use different names for things that are similar in RPG; you can save a lot of time and effort just by switching to the newer set of names (even if they are not really the same thing). These are my favorites:
- Say class instead of module. A class contains both the data and the procedures that operate the data, just like an RPG module does.
- An attribute is like a global variable and a method would be an RPG procedure. Methods are the only way to change attributes in a class.
- The prototype for a given procedure is known as the method's signature, and the collection of prototypes stored in a source file member (usually included using /COPY) can be referred to as the class interface.
- A package is a collection of classes, just as a Service Program is a collection of modules.
- Finally, table, index and schema should be used instead of physical file, logical file and Library--I know the last one is the hardest, so don’t worry, you get a pass.
3. Use today’s tools for today’s programming. New programmers need new familiar tools for coding RPG, HTML, Java or any other language. Rational Developer for Power and iSeries Navigator help them feel at home, with almost no need to learn how to use them. I still struggle when I try to use SDA, imagine what it would do to them.
Just think of the agility you will get if all layers of your applications can be developed by the same programmer; in our case, the modern ILERPG language has allowed just that.
How can I agree with this? Here I am close to retirement hoping that after I retire the helicopter will one day land in my remote Montana yard begging me to come back at some astromnomical hourly rate to write or fix some RPG code that the JAVA generation has not even a concept. Besides that files, fields and libraries have been around far longer than rows, columns, tables and schemas. And I am still programming in RPG - not flipping burgers. Regards, RPG4HIRE
Posted by: James H. Greene | December 01, 2010 at 10:50 AM
Companies don't want to depend on applications that depend on the people that wrote them. When this happens companies start to migrate to other applications/platforms, or even worst, they hire Java programmers and start developing applications in Java that should have been written in RPG.
Our approach was to hire Java programmers and teach them modern ILERPG. They are the guys in charge of new development and refactoring of our legacy applications (web enablement, SOA readiness, etc), while our senior RPG programmers are taking care of legacy maintenance, requirements, coaching, management and/or architecture.
We are not replacing our current RPG workforce, we are just ensuring the sustainability of our applications and our business model.
Regards
RPGRULES
Posted by: Jorge Gutierrez | December 01, 2010 at 03:09 PM
I like this article. Good content, concise, and practical.
Way to go Jorge.
Martha Gil
Posted by: Martha C Gil | December 14, 2010 at 08:49 AM
Excellent article Jorge, with good practical advice.
Posted by: Marinus Van Sandwyk | January 03, 2011 at 12:47 AM
I'm very interested to learn Java. I like your article
Posted by: Massimiliano Toninelli | January 23, 2011 at 01:59 PM
Interesting to hear that there are Java programmers who want to learn RPG. I'm really surprised about that. I'd like to get in touch with any Java programmers who are wishing to learn RPG or are learning RPG, because I would like to understand their motivation for doing it.
Would any Java programmers learning RPG raise their hand?
Posted by: Chris | March 16, 2011 at 10:23 AM
Chris,
I would have to imagine it has nothing to do with Java programmers wanting/looking to learn RPG (because they probably don't know it exists) but rather a case where their employer NEEDS them to learn RPG. Then when they get into the language they realize there are some REALLY nice features (i.e. integrated DB). Of course they will also find our lackings, but many of those can be overcome.
Just my $.02,
AaronBartell.com
Posted by: Aaron Bartell | March 17, 2011 at 09:12 AM