Bookmark and Share

Recent Posts

RPG and IBM i Programming Languages

August 24, 2015

One of the most frequent questions I get when I discuss the future of IBM i is a very open-ended question about IBM’s commitment to RPG. This is natural, I suppose, because when many people think of our platform, they think of RPG, which has historically been the most commonly used programming language on IBM i and its predecessors.

Recently, I’ve received such questions frequently enough that I’ve gone looking for a good place to point people, so they can clearly see the IBM strategy as it relates to programming languages in general, and RPG in particular. Did I find any such place? Of course I did! But I’ll mention it again, and then I’ll go one better – I’ll restate it here, in the hopes we all can help spread the word.

So, where is the IBM Strategy for RPG and other languages described? Why, in the IBM i Strategy and Roadmap paper! The link to get the current version of that paper is here but since it gets updated every once in a while, it’s best to start by going to the IBM i site on and finding the link there.

Still, I understand that paper is several pages long, and so perhaps a single place to discuss RPG and IBM i applications languages is in order. So, here we go.

The IBM i RPG & Application Languages Strategy

I recently built a chart that I’ve been using in most of my IBM i Strategy and IBM i Trends presentations. I’m going to include it here, and then I’ll write more about it below.


RPG is a very important part of the IBM i application development portfolio. Though there is no way to measure it, we are pretty confident there is more code running on IBM i that is written in RPG than in any other single language. IBM continues to make significant investments in the language, and over the years it has been transformed it into a modern procedural language with the capability to interact with all kinds of interfaces -- including XML, remote DBs, modern devices and so on – while retaining the integration with IBM i and DB2, which makes it an incredibly efficient language for implementing data access and business processes.

Examples of our investment in RPG can be seen in the prominent place that major RPG enhancements take in our announcements. For example, just looking back at this blog, where I frequently talk about strategy and announcements:

* IBM i 7.1 announcement back in 2010 had the RPG Open Access feature -
* In early 2012, IBM agreed with the community that the Open Access enhancements to RPG were important to roll out pervasively, so we made them available to all clients, without additional charge -
* Even before the 7.2 release, we added RPG Free Format to the tool set, again, available to all RPG users -
* And many of the customer examples I have written about, where customers are modernizing their software for today’s environments, feature RPG at the core of the solution, such as this one from Baker College -
Youandi-8-24-II-(1).jpg* Oh, and lest we forget, please recall that RPG was one of the 25 icons we discussed in the IBMi25 program two years ago! Jon and Susan wrote about it as part of the campaign to celebrate the platform.

However, RPG is not the only language that’s important to IBM i. We’ve added support for many other languages and language environments over the years. And why have we done that? It’s all a part of the IBM i strategy, and in particular, one strategic foundation:

IBM i must be a great platform for business solutions.

Business solutions are implemented by application developers using programming languages. Being a great platform for business solutions means that the platform must embrace more than one language – more than just RPG. Why? Several reasons.

First of all, no single language is designed to be the best at everything. In fact, many languages are equally good at most things, but have specialties. For this reason, an increasing trend in the industry – not just for IBM i environments, but across all platforms and operating systems – is the blended software solution. A blended solution uses multiple languages to achieve its goals. So, while RPG may still be the core language used by many shops to implement their business processes, these core business solutions are increasingly being updated and augmented with code in Java, or PHP, or, or, or… And many customers are also finding that these other languages can be used to do business processes, and access DB2 also, and where it makes sense for their organizations, they do that.

Secondly, students learn different programming languages than they used to, so applying their skills quickly often means asking them to do their first projects using languages they have recently learned, before teaching them something else. By the way, this is true for any platform that has a significant history – many long-existing programs were written in languages that are not the focus of educational institutions these days. There are a lot of reasons for that, too, but we’re not going to discuss that topic today. The fact remains, whether your 20-year old application was written in RPG or some other language on some other operating system, the 20-year-old programmers you meet will almost certainly have learned another language when they were in school – or at least a more modern version of the language, using modern development tools. So, supporting more languages is an important factor in ensuring that there are skilled people to work on the business solutions.

And then, very importantly, there are huge catalogs of business solutions out there that are written in other languages. Since IBM wants its IBM i clients to have many options when it comes to business solutions, supporting those other languages and other environments is critical.

For these reasons, while we have been enhancing RPG, making it very easy for programmers to learn and use, we have also added PHP, Java, C, Python and others to our portfolio of application development offerings, and as new languages appear, we evaluate them for integration into our IBM i tool set.

Too frequently, I run into people who think that there is some sort of war going on between factions who care about different languages, and they seem to think we each have to pick a “side.” But that’s simply not true. These days, in the IBM i world, it’s not about RPG or some other language, it’s about using modern RPG where it makes sense and using other languages where they make sense. And if you step outside the IBM i world, the same sort of phenomenon occurs. Some people care deeply about a particular programming language, but those who are interested in getting business done just want to use the tools that are best suited for the job at hand.

(Remember, the logo doesn’t say “i for RPG” – it says “i for Business.”)

To that end, if IBM i is to remain a great platform for business solutions, it must continue to create more value for modern developers in RPG, as well as allowing those developers to use other languages. That’s the strategy, and how RPG fits into it.

Posted August 24, 2015 | Permalink

Post a Comment

Note: Comments are moderated and will not appear until approved

comments powered by Disqus