The Microphone is Open
Add your voice: Should IBM i include open-source RPG tools?
Recently, I was on an IBM ISV Advisory Board call with IBM where ISVs were being briefed on some new IBM technology to aid in modernizing existing RPG programs. In this particular effort, IBM was using Java to do the modernizing instead of employing RPG. Using Java to modernize RPG applications has always been a feather-ruffler for me. In my mind, it’s like asking a Microsoft .NET shop to employ the use of Oracle databases and operating systems (i.e., the newly owned Solaris) as a way to modernize their business. Not only would they need to become versed in new and less integrated technologies, but they also wouldn’t be able to respond as quickly to business changes because of the newly introduced complexities and failure points.
After getting over my hissy fit concerning the Java vs. RPG ordeal, I realized that maybe the reason IBM chose Java was that it wasn’t asked specifically to use RPG. So I sent an e-mail to IBMers Rob Bestgen, Kent Milligan and Tim Rowe to ask them if that was, in fact, the case. Specifically I wanted to know why more things weren’t implemented with RPG or C—two languages I consider more native than Java because they aren’t running on top of an additional virtual machine like the JVM. It’s not that I’m against Java. I just wish it were integrated well enough that I could forget I’m using it. When Java is involved, I inevitably have to tweak something, like specifying the correct version of the JDK to use when running an application, finding a way locate logs for a job running Java, database connection issues, etc. In response, Bestgen gathered a team of IBMers for another meeting to talk about my comments.
Asking the RPG Question
In my second meeting with IBM, we discussed many things I want to share with you. First was the reasoning for using so much Java. IBM has strongly embraced Java, and the reason given is that many community projects, like Apache Software Foundation initiatives, have an excellent jumpstart that IBM can partner with—without having to start from scratch. It partners with these Java projects to the extent that it actually has IBM employees as committers (i.e., developers who submit code to the open-source project). This gives IBM the capability to build solutions more quickly to meet the needs of IBM i customers because it isn’t starting from scratch, and it’s also able to provide support because it has people actively working on the projects.
The conversation turned to whether something similar could be accomplished with community-supported RPG open-source projects. I thought, “what better way to increase the awareness and viability of RPG Open Access than to get some open source project surrounding it and ship it with the machine.” Emphasis on “ship it with the machine” because many open-source projects are already out there, but if they don’t ship on the machine then it’s much less likely that a shop will ever make use of them. Besides, having any given open-source project included with new machines does wonders in the legitimization department—look how far Zend and PHP have come with the IBM i.
Two revelations came from that discussion:
1) If an open-source project did ship with the machine, who would support it? IBM said it’d like to give customers a single point of contact if any customers have issues with software that’s shipped with the machine.
2) If open-source RPG were to ship with the machine, it would have to pass through IBM legal. This is where the open-source license becomes very important, says Bestgen and Rowe. Many open-source licenses simply don’t work well with IBM, and on many fronts I agree with them. Rowe and Bestgen said if the open-source RPG were released under Apache 2.0, it’d be much more welcome and actually have a chance of being passed through. You can read more about Apache 2.0 licensing here. Ten years ago I thought there was only one type of open source, but I was sorely mistaken! Having open source is only the beginning; then there are rules about how you can use the source. You can compare open-source software licenses here.