Skip to main content

Four User Questions, and Expert Answers That Prove RPG Is Strategic

Steve Will discusses what RPG is and why it's so strategic.

In my last blog post, I talked with a couple of experts about teaching RPG to IBM i developers. Almost immediately, a couple of discussions started in the comments section of the blog, on LinkedIn among readers and in email exchanges.

This was great. This sort of interaction is one of the things that makes social media so powerful—allowing the community to have conversations about topics that matter to them, and allowing authors to get quick feedback.

One aspect of this sort of conversation, though, is that comments and conversations sometimes generate discussions about related follow-up questions that weren’t addressed in the original topic, but far fewer people read those follow-up discussions.

I decided that a couple of the follow-up questions needed more visibility than they were getting, so today I’m going to address those.

Why is RPG Strategic?

The first came from a discussion in the LinkedIn group ILE-RPG Developers. Its moderator, Marinus Van Sandwyk, invited me to join, and I’m glad he did. The base question, asked by Nathan Andelin, was:

Given that IBM has invested a lot of resources into porting mainstream-language environments to PASE, what is it then that still makes RPG strategic?

That’s a pretty clear question, and I thought a clear answer would be good. So, here’s what I said, augmented with a few more words.

Rather than repost what I’ve written before, I will point to another blog entry I wrote a while back entitled “RPG and IBM i Programming languages.”

I’ve just reread the blog above, and the points are the same, though of course we have continued to enhance RPG past the examples listed in that post—most notably by introducing free-format RPG and partnering with companies who transform fixed format into free format.

So, what makes RPG strategic is a combination of requirement, capability and investment.

Requirement: As the chart in the blog states, as our experience tells us and as surveys confirm, RPG is the most commonly used language for applications on IBM i. It’s strategic, in part, because our client base requires that it is. The latest HelpSystems survey reaffirmed this requirement, showing that 87.5 percent of their respondents use RPG when doing new development (along with other languages—multiple languages are used by today’s development shops.)

Capability: RPG is still an excellent, efficient language for accessing functions in IBM i, particularly when paired with SQL to access Db2 for i. It’s strategic, in part, because it is very good at what it does, and has been integrated into the operating system since the beginning, taking advantage of the architecture all along.

Investment: This includes not only investing in new features, but in emphasizing that the new features should be focused to emphasize enabling the future of the language. For example, investing in free format, and working with partners (such as Paul and Jim) helps us bring RPG to a new set of developers much more easily. These investments, and this emphasis, have also made RPG the most commonly used language when writing new function, according to the results of the HelpSystems surveys.

Let me restate what I said above: Most new function is written in more than one language, so RPG is not the only strategic language. But it is a key part of the IBM i strategy.

The Definition of Modern RPG

Another follow-up question relates to the definition of “modern” RPG, and perhaps more importantly, where that definition can be found. Commenter “Greg H” made this statement in his part of the blog discussion.

Most RPG programmers won’t attend a conference or read an article. They rely on IBM’s official documentation and although the term “modern RPG techniques” probably (maybe) means a precise subset of RPG to you three, IBM has not documented what that means and neither have the RPG illuminati. …  

IBM’s documentation of the language is horrible because it gives everything in RPG2 (the cycle, I specs, matching records) the same importance as RPG’s ILE functionality. RPGers feel free to choose whatever they like and call it ‘modern best practices’.

This Follow-Up raises a couple of points, and we could have long discussions about what makes up the “modern” (or current) version of ANY language (programming, written or spoken) but one thing that does NOT define a language is its unabridged dictionary. I mention this because the manuals which describe what parts of RPG are still possible to compile are far more like unabridged dictionaries than they are like style guidelines. The Oxford English Dictionary still contains words like “bodkin” and “cicisbeo” but today’s modern English user won’t use them in normal, effective writing.

To understand what a language’s current (modern) usage is, a user of the language should be looking to modern experts. Now, certainly, a user might also rightly ask IBM to be one of those experts. And, in our role as strategic developers of the language, we do provide guidance—it’s just not found in the language definition. It’s found, rather, in things like the Redbook “Who Knew You Could Do That with RPG IV? Modern RPG for the Modern Programmer”

We also work with experts in the field, like Paul and Jim (and Jon and Susan and Scott and so on and so on) to get requirements, validate our directions, and promote “modern” usage.

There are still pedants who use archaic words and somehow justify to themselves that they are “correct” in doing so. If it’s someone’s job to communicate effectively and efficiently, they should be encouraged—required even—to search out and use modern versions of the language. Perhaps we at IBM could be better about helping people see what that is—I’ll take that comment and reevaluate our approach. But, we do make our advice available—in publications, articles, conferences, interviews—and we partner with others who carry the same messages.

It is my hope that the RPG programmers “Greg H” knows will recognize that these resources do exist and take advantage of them. The IBM i platform will benefit, and so will the programmers.

Modern Db2 on i

I spoke at an event run by the OCEAN user group shortly after the last blog was posted, and I had included a “modernizing applications” section in my presentation. After the session, David Contreras approached me for a discussion on modernizing as it relates to Db2 for i. Afterwards, at my request, he sent me a note summarizing his comments and questions. I’m extracting from that.

I spoke to you about DB2, and asked you, why I did I not see much hype about it. Is there not much interest in the back end of Modernization with the Customer Base? Db2 on the i is such a great way of minimizing the overhead of maintaining your applications, as well as keeping your data clean with integrity. … With  Rules, Security, OS User Exits,  Before and After Journaling, Triggers etc. you have a solid database offering solution.

I know that the GUI interface is the cool stuff that gets people excited about modernizing, but unless folks like yourself make a bigger statement in your presentations about the significance of adopting the new DDL/SQL mindset that is native to the database engine, customers have a difficult time adapting to it, they figure not much talk about, maybe not much happening with it.

What is happening with IBM, going out and promoting DB2 learning, and training. I know Lab Services is doing this, but who is tasked with getting the masses to adapt?

Again, several points can be discussed based on this excerpt, but let me hit some highlights.

First, in my “defense” —my focus areas, when I present, vary depending on the messages I’m trying to convey to a specific audience in a specific engagement. It’s interesting to note that, when I talk to Dan Berger from IT Jungle to highlight new function in a release or a Technology Refresh, he’ll often ask why I spend So Much Time talking about Db2. And yet, in David’s opinion, “folks like self” are not talking about it enough. So – different audiences, different messages.

If my topic at the OCEAN meeting had been “Latest & Greatest in IBM i 7.3 & the TRs,” I would have talked about Db2 extensively. (See my blog on the 7.3 Announce.)  If my topic had been “The IBM i Strategy,” I would have talked about Db2 more than I did that night at OCEAN. Why?  Because, delivering new function that supports our “datacentric” strategy is key to both of those presentations.

But, could we be talking about it more?  Perhaps. Could we be using customer references related to Db2 more than we are?  Perhaps.

I’m beginning to use this new case study, which documents how our partner, ITHEIS, helped our customer Assura, in their modernization project, which make extensive use of the newest Db2 for i capabilities. As Laurent Crelier (lead architect at the customer) said:

 

Re-engineering our database is one stage in a larger modernization program, and we are excited to see where it will lead us next. We’ve opened up access to data, helping us make the most of the IBM Power Systems platform, which has already been such an impressive engine for our business.

And that reference makes another key point. As I mentioned in the blog I wrote entitled IBM i Strategy: The Cooperative Game—IBM doesn’t do everything ourselves. We count on partners to work with us and our customer base. Just as with RPG, there are things we can say, and investments we can make. But this platform (since the days of the AS/400!) has always succeeded by incorporating the whole community, and that includes partners.

We’re always on the lookout for partners who recognize the opportunity to help our clients modernize, whether it’s RPG, UI, Db2 or other aspects of their environment. We’ll help spread the success stories, and we’ll point people to the information we have. And if we’re not doing enough, we’ll take that constructive criticism and try to improve. That’s our part in all this.

Before I conclude, thank you to all the people who comment and discuss the posts we write. We can’t respond to each one, but we really appreciate your thoughts and suggestions. You influence our internal discussions, and ultimately the things we do.

Now, to get this posted, so the discussion can continue.