There is no crystal ball deciding the future of the language, but we can identify trends, and some of the trends may surprise you.
The IBM midrange is unique in that it has always been focused on business programming, with a particular emphasis on the database. The database was so integral a part of the machine that for a very long time it didn't even have a name. Over the years, the database acquired nearly all of the features of its relational cousin DB2, enough that it could be called IBM DB2 for i. But no other platform has RPG. RPG is the assembly language of IBM DB2 for i, and as long as there is breath in the IBM midrange platform, the oxygen will be RPG.
What's Special About RPG?
If you've read what I've written about RPG over the years, you already know my position: RPG is the best language available for defining data-driven business rules. It has historically been fast to program and fast to execute, and it's designed with business processes in mind. It came to prominence on machines that ran entire enterprises in 16K of RAM. To put that in perspective, that's considerably smaller than the Word document for this article. Those same enterprises routinely ran on 3340 disk packs with a whopping 2MB of storage, not much more than what you could put on an old 3.5" diskette (actually, the extended density diskettes could hold nearly 3MB of data). I only bring this up to illustrate how RPG has always been able to get a whole lot of bang out of your IT buck.
But what makes RPG truly unique is how it has evolved over the years. From the early days of RPG II (to be honest, even I am not old enough to be familiar with the original RPG language) on through the current days of RPG /free, the language has continued to progress, adding the features needed to support each new generation of business requirements. And the changes were significant: controlled programming constructs in the '80s, ILE in the '90s, /free in the '00s. RPG OA is perhaps the first glimpse of what the '10s will bring. Because of this, RPG remains a viable language for current business development.
But What About the Future?
The future of RPG is always in doubt. Part of that is because the language is tightly tied to the IBM midrange platform. It has never really pushed outside that particular niche, although for a brief time it had a little more breadth, whether it was on HP hardware or IBM mainframes or even a small but vibrant group of IBM midrange emulation packages (Baby/38, anyone?). So the future of the language is always going to be directly dependent upon the future of the platform. At the same time, there have been groups of people both inside and outside of IBM who have over the years announced (prematurely so far) the demise of the language. Whether it's IBM's infamous hamburger-flipping advertisement of the late '90s or the current call to PHP, someone is always saying there's a better RPG than RPG. They're always wrong, but they keep saying it! Unfortunately, it's difficult to get an objective view of the situation. We're often forced to listen to anecdotal evidence presented by less-than-impartial sources.
So today I'm going to introduce you to as objective and substantial a source as I can find. It's not perfect, by any means, but it's certainly less biased than anybody who has skin in the IBM i game, whether selling software or services around a particular language or even just writing the occasional article. That source is the TIOBE Programming Community Index. For over a decade, TIOBE has published a monthly index of the popularity of programming languages. TIOBE ranks languages based on their appearance in popular search engines, using a percentage scale. You may or may not agree with their approach, but they have been consistent over the years, and that consistency by itself lends credence to TIOBE's numbers, especially when looking at trends. And the latest edition offers a rather eye-opening observation: general-purpose scripting languages are in decline.
Over the past two years, the popularity of the general scripting languages—Perl, PHP, Python, and Ruby—has dropped significantly. PHP is still the leader with a 6.6 percent share of TIOBE's measured approach, but that's a pretty steep decline from 9.7 percent just two years before and from its heyday of around 12 percent back in the early 2000s. Perl and Ruby—and to a slightly lesser extent, Python—have all suffered similar popularity drops. Overall, the general scripting languages have fallen from over 21 percent of TIOBE's index to just over 14 percent; a relative drop of some 30 percent. Much of this can probably be attributed to a corresponding rise in the popularity of languages like Objective C and Lua, which are geared more for the mobile marketplace and especially for the iPhone and iPad. In fact, the percentage lost by the scripting languages is almost entirely made up for by the increase in these mobile-oriented languages. Take a look at the charts for the two different language sets:
Figure 1: Compare the TIOBE popularity figures for scripting languages (top) and mobile languages (bottom). (Click images to enlarge.)
The figures are pretty eloquent. Over the last two years, all of the general scripting languages have been in decline, perhaps none so dramatically as PHP. Meanwhile, the mobile languages have leapt upward. Moving from fact to opinion, I can make a conjecture. The popularity of languages on the TIOBE index, especially for the big movers, tends to reflect the "hotness" of a language: both how cool the language is and how hip its target deployment is. Web 2.0 was all the rage a few eyeblinks ago; thus, so were its enabling programming languages. Nowadays, mobile is the hot ticket, so you see a significant uptick in the related technologies. Lua gets a big boost by the fact that it is the primary language for one of the more popular mobile apps in the world today: the ubiquitous Angry Birds.
Hello? RPG?
So by now you're wondering about how this relates to RPG. Let me give you one more chart first. This is the chart of the Big Three of all languages. These three languages have been the most popular overall in the TIOBE index for some time, and mostly in this order: Java, C, and C++. Java and C traded positions a couple of times in the last decade, and C++ was overtaken for brief periods by Visual Basic (VB) and most recently by PHP, only to regain its position. Here's the chart for those languages:
Figure 2: The major general-purpose languages show remarkable consistency year to year.
What is interesting is the consistency. They tend to suffer the slings and arrows of time quite well—down a little here, back up a little there—but continuing to account for nearly half of the TIOBE index amongst themselves. They're neither in a steep decline nor in a rocket to the top (which often is followed by—you guessed it!—a steep decline). What might this have to do with our beloved RPG? Well, take a look at this chart:
Figure 3: RPG also shows consistency, not to mention staying in the top 20.
It shows more fluctuation than the Big Three, but it does seem a lot more stable than a language that is in danger of imminent demise. And lest you think those numbers are insignificant, RPG is currently in 18th place on the list, beating out languages such as PL/SQL, COBOL, and ABAP and jockeying for position with T-SQL. Not necessarily the picture of doom.
So, is RPG the language of the future? Given the realities of today's business world, probably not. I don't think that's the fault of the language. It could be if IBM got its marketing act together and positioned the IBM i as a high-performance business rules appliance with SQL and Java as its primary interfaces and RPG as its internal development tool, but even without that (unfortunately unlikely) event, it certainly seems to me that the news of RPG's demise is just a bit premature. There is no clear successor. What best fits your objectives? You can hitch your wagon on a new and rising star like Lua, grab the declining glory of a previous hot shot like PHP or Ruby, or stick with the tried and true of either a major language like Java or a niche language like RPG. The choice is never simple, but maybe these charts can help your decision-making.
as/400, os/400, iseries, system i, i5/os, ibm i, power systems, 6.1, 7.1, V7, V6R1
LATEST COMMENTS
MC Press Online