RPG And Java At The Crossroads
December 9, 2013 Dan Burger
The IT director of an IBM i shop somewhere in the Midwest was walking down the street wondering about where he was going to get several programmers with modern RPG skills along with Web and mobile skills. He walks by an employment agency with a sign in the window that says “brains for sale.” So he goes inside. The first thing he sees is another sign that says “CEO brains $8 per pound.” Next to that what he sees . . .
. . . is another sign that says, “CFO brains $12 per pound.” Beyond that were signs that read “Legal advisor brains $30 per pound” and “Sales manager brains $40 per pound.” As he scans the room, he finally sees a sign that says, “RPG and Java programmer brains $110 per pound.”
So he says to the person sitting at the only desk in the room, “I’m an IT director and I need some RPG and Java programmer brains, but why are they so expensive and compared to CEO brains?”
The guy at the desk looks up and says, “Do you know how many programmers it takes to make a pound of RPG/Java brains?”
Think about it. Why do so many programmers know so little about those two programming languages?
One Language Syndrome is prevalent in the RPG programming community, where isolationism is often the IT policy of choice. The majority of Java programmers would probably agree that RPG should be kept in isolation, and perhaps that it be monitored by the Centers for Disease Control and Prevention. Both perspectives have nothing to do with modern times.
Cross-training is becoming more popular as the combination of needed skills does not match the available workforce. That’s led to a more concerted attempt to train non-RPG programmers to work with RPG. There are indications this can be successful, but only if the RPG is modern free form RPG. Attempting to get a Java programmer to learn a version of RPG that predates the programmer getting a driver’s license seldom arrives at a happy ending.
A far better idea is to bring the RPG technology up to modern standards, which is what IBM has been doing for many years. Not enough RPG programmers have been keeping up. Some have only themselves to blame, while some have had their employers influence the decision by invoking the “if it ain’t broke, don’t fix it” policy. Regardless, the number of Java programmers coming out of college greatly exceeds the number of RPG-trained graduates. (It also exceeds the number of Java programming jobs, but that’s another issue.) Pigs will fly before that changes, but there still needs to be more effort and more money spent on building modern RPG curriculums at the college level. Hello, IBM, your Academic Initiative for Power Systems is woefully underfunded and understaffed and IBM i shops need to partner with their local colleges to identify skills that will lead to jobs. Employment opportunities will get the attention of college administrators.
With a limited amount of modern RPG programming taking place and a limited number of modern RPG programmers available in the job market, it has put IBM i shops between the proverbial rock and a hard place. And lately that has given rise to the re-emphasizing of cross-training Java programmers because there are plenty of them to become modern RPG programmers.
This idea has been around for a while with moderate success, but greater expectations arrived with the recent TR7 enhancements for free form RPG. To sum up the enhancements in one word it would be readability. Free form RPG, in its latest version, is light-years ahead when it comes to universal readability, which leads directly to interoperability.
“The requirement for training Java programmers arises in one of two situations,” says Paul Tuohy, an RPG expert with experience training Java developers in the arts and science of RPG. “Either a company is left with a bunch of Java programmers after a project ended up going nowhere or was completed and those programmers no longer have anything to do, or the company has just started hiring new programmers. In my experience, the latter far outweighs the former.”
“Companies that are programming in modern RPG realize that they do not need to employ trainee programmers who have been specifically trained in RPG, “Tuohy continues. “It is very easy for them to take any programmer from college and very quickly train them in modern RPG. It usually takes about a one-week introductory course and, at a later stage, an intermediate-to-advanced course. Java programmers have no problem understanding modern RPG, they find it very, very easy to understand. Now that RPG is completely free format [with the release of IBM i Technology Refresh 7], it will be even easier. Those fixed form F and D specs were still a slight hurdle for some programmers–not that they couldn’t get to grips with it, but because they found it annoying.”
Understanding multiple languages and acquiring multiple skills is what separates the above average programmer from the average programmer. All companies would prefer to hire the most skillful people they can get for the salary they can afford to pay. Will they try to get the most for the money? Of course. But the more skills you have the more leverage you have in salary negotiations.
Can a Java programmer who is newly trained in RPG take over an RPGers job? It wouldn’t be out of the realm of possibility, but it might depend on the associated skills the RPGer brings to the table. That’s not the intent in nearly all the cases that Jon Paris has had a hand in. Paris and his partner, Susan Gantner, along with Tuohy, are the core individuals in System i Developer, the company that stages the RPG & DB2 Summit conferences that specialize in skills enhancement. All three of these well-known trainers have experience training Java programmers to work with RPG.
Some of the Java programmers Paris has trained end up working in RPG and it is often in conjunction with other languages. He has also trained with the goal of raising awareness of the IBM i platform and increasing communication among Java programmers and RPGers. Much like the well-known feud between the Hatfields and McCoys, the lack of cooperation between Java programmers and RPG programmers is rooted in misunderstanding and miscommunication.
“One thing you learn very quickly is that while Java programmers are using an OO language, in many cases they are using it a lot like a procedural language and not fully exploiting OO–so the things they “lose” are often outweighed by the things they gain such as easier to code business calculations and simple reporting,” Paris says.
To be resolutely curious is a virtue shared by Paris, Gantner, and Tuohy, who are drawn by the challenges RPG and other programming languages present.
Tuohy believes a programmer is a programmer and the language is just a tool and there are benefits that each language offers.
“Programmers with skills in different languages bring new perspectives to the programming environment,” he says. “I have great fun whenever I’m training Java programmers, simply because they give me a new perspective on things. I get lots of questions along the lines of ‘can you do this’ or ‘can you do that.’ And, if the answer is no, the next question is ‘Why?’ Any experienced RPG programmer will have a lot to offer a new, young programmer, but the RPGer will also have a lot to learn from that new young programmer.”
Paris’ advice for teaching RPG to Java programmers begins with these three steps:
Although this article discusses the ability of a Java programmer to learn RPG, it could just as easily apply to programmers who are fluent in C++, C#, PHP, and others. Once you make RPG modular, just about any programmer can figure it out from there.