Why ILE RPG? - (Part 1) by Nathan M. Andelin
This article (or series) expresses my point-of-view in regards to the question of why ILE RPG, in light of the other languages and language environments which are available on the IBM i platform.
The recent launch of a new ILE-RPG web site was the context of a private email dialog between a group of site moderators (including me) who were considering a set of questions from Alex Woodie, of IT Jungle.
Alex Woodie was considering publishing an article about the web-site launch. One of his questions was, why RPG in light of the other languages available on IBM i? Marinus Van Sandwyk provided a brief response to Alex. But Marinus asked if some of us other moderators might follow up with blog posts of our own; or possibly a collaborative effort.
It turned out that Alex Woodie did publish an article with a rather provocative title; RPG Website Resurrected. Is the Language Next?.
That kind of explains what triggered me to write this piece. But the background also includes my participation in public and private debates about the use of RPG for the development of new applications, and particularly in regards to using RPG to deliver browser user interfaces.
For me, these debates date back to about the year 2000. Language wars are fairly common. But I'm personally not aware of any other computer programming language or developer community which has been attacked more fiercely than RPG.
I haven't regretted my investment in RPG, nor my defending it. But I would like to document some of my reasons for using RPG on a web site which I own, and refer people to it, rather than rehash my point of view in public forums which shuffle to the bottom of the deck or lose their relevance over time.
What About Alternatives to ILE RPG?
As I begin, I should make it clear that I have a lot of respect (even admiration) for alternative languages and language environments; particularly those which run on IBM Power servers and which have been integrated with IBM i.
I appreciate very much that IBM has made it a priority to integrate various language environments with IBM i; that they are available for use. They add a lot of value to the platform.
I have used some of them for application development and whole-heartedly agree that they may be the best choice for specific use cases, certain tasks, and for specific scenarios.
I appreciate people who facilitate the adoption of various language environments by posting examples and responding to questions.
More than the actual use of such languages and language environments, I appreciate the fact that they enable more applications to be ported to and used on the IBM i platform, which is often much better than writing new code from scratch.
As I proceed, I may make comparisons and contrasts between ILE RPG and other languages or language environments. In reading these, please don't jump to the erroneous conclusion that I'm waging war against alternative languages or language environments.
Most of my comparisons and contrasts tend to be between language environments which run in the IBM i virtual machine, vs. alternative virtual-machine environments; where the native virtual machine offers advantages over others. I acknowledge that points and counter points can be made from opposing sides and from either direction.
My objective is that those who lean in favor of using ILE languages for new development may have a voice, solid rationale for using ILE RPG for new development; that I might be viewed as a peer, and be viewed as a reasonable advocate for the integrated language environment on IBM i.
What About the War Against RPG?
For those who may wage war against RPG, or against the IBM i integrated language environment, or against the IBM i platform/ecosystem, or against IBM - my hope is that you might respectfully consider my contrary point of view.
I plan on supporting my view with rational argument, experience, and evidence. I don't have ambitions to dissuade you from your positions. I would like to vie for mutual respect and understanding.
I should acknowledge that a lot of opponents against RPG have been empowered by a surge in popularity of Windows and Linux, while the IBM i platform tends to be stable is some parts; declining or even floundering in others.
A lot of opportunists view IBM i as an easy target; fresh road-kill for the taking. Their experience on the platform qualifies them to facilitate migrations off of it - which they intend to cash in on.
Others have been hurt by cut backs in organizations and a loss of opportunity. I understand that there are a lot of reasons for many people to be upset, which may have turned them against the platform.
Notwithstanding there being some valid reasons for being critical of the platform, I believe that much of the distrust which is manifest against the platform is based on a lack of awareness combined with outright misperception which I'll begin to address in this article.
Computer programmers in particular tend to view the IBM i platform as costly in comparison to others. The erroneous perception that the platform is expensive relative to others incites a lot of argument against it.
Arguably most computer programmers cannot justify $20K for an entry-level IBM i server, nor even $10K for an entry-level development box. Limitations like that kindle arguments against the platform and the RPG language on the basis of cost.
Many programmers believe that if IBM i were ported to run on personal computers, then it would be affordable (within their reach). Otherwise they're not interested.
What About the Cost of IBM i on Power?
Although the entry-point cost for a developer might understandably bias them against IBM i languages and the integrated language environment, the perception that IBM i is costly in production environments is very badly mistaken.
IBM i's bang for the buck; its long-term value; its return on investment in comparison to alternatives on other platforms is my primary reason for investing in the RPG language and the integrated language environment. I should emphasize that. Return on investment!
I'm making a point from the perspective of people who evaluate investment alternatives, who expect value from their computer systems; who expect a meaningful rate of return on their investments.
That describes my educational background and early work experience. I may write computer code now, but I began my professional career managing the budgeting and cost accounting pertaining to a $10 - $20 million IT department in an aerospace/chemical company. Return on investment, "ROI" was imprinted in my brain during my university and early work experience.
How Does RPG Provide Meaningful ROI?
I run a small company which has developed, and hosts an integrated system which supports administrators, teachers, parents, students, cafeteria workers, health providers, and others in secondary education (kindergarten - high school). We're looking to expand our offerings and grow the company in this vertical market. I'd like to describe how ILE RPG is helping.
One of the prominent companies competing in this market has published platform requirements and recommendations for hosting their products which are functionally comparable to ours. Their platform requirements are based on the number of students served. They've published several platform tiers based on various student populations. Let's review one of the smaller tiers (7,000 - 15,000 students):
Two 4-core application servers (latest Intel CPUs, 12 MEG RAM per server, 60 GB DASD).
One 12-core database server (latest Intel CPUs, 16 MEG RAM, 300 GB RAID SAS Disk Array).
Oracle DB License (12-core).
Microsoft 2012 or 2016 Server, with client-access licenses (CALs) for school employees (anyone needing access to the network file system).
Tomcat Web Application Server.
This is a basic configuration which doesn't take into account additions for high availability/disaster recovery.
Perhaps even more interesting is that their proposals include training for Windows and Oracle administration in addition to positions for people who would be administrating the line-of-business applications.
Our proposal would be different, partly due to our promoting a hosted service on IBM i, rather than an on-premises package. We'd configure an HTTP server instance, a few IBM i subsystems, a handful of IBM i libraries, and a root-level directory in the IFS for such tenants.
The CPU requirements on our IBM i host would amount to perhaps 1-2 cores (as opposed to their 20) for that size of customer, due largely to the efficiency of our web interfaces, which are based on ILE RPG.
The IBM i native virtual machine and integrated language environment enables us to provide comparable functionality, for the same number of users (which includes students and parents), at a fraction of the platform capacity, and for less cost. We have a platform which is more resilient, easier to manage, and performs better for end-users than other technology stacks.
This is NOT the only case I've seen where we've been able to provide more bang for the buck than the competition. A lot of that is due to the runtime efficiencies manifested in the ILE environment and the single-level store.
The IBM i native virtual machine and integrated language environment offers significantly better performance, scalability, and reliability than other virtual machine environments. Over time, I hope to explain why that is so.
This piece was intended to introduce the topic why ILE RPG in light of other languages and language environments which may run on Power and integrate with the native virtual machine. Return on investment is a priority of mine, and my primary reason for recommending ILE RPG for new development.
Of course there are many additional arguments, both for and against ILE RPG, which I hope to address in this series. I plan on continuing to advocate for ILE RPG while also considering opposing perspectives.