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.