Tuesday, February 23, 2016

IBM i Legacy Modernization and the RPG Programmer

There has always been a lot of talk about "Modernization" in the IBM i community.  

With all the new technologies in the world, some becoming available to the IBM i, there's no shortage of subject matter.

Most of this legacy modernization in the IBM i world is directed at RPG programmers, as it always has been.

As an overused example, years ago we were told if we don't learn Java we would be flipping burgers.  

A few years after that we were pushed to use EGL.

Now we're told that we need to learn PHP, Perl, Ruby, Node.js or some other new language that has been (or will be) "ported" to the IBM i.

In the coming years, what will be next?  What will it be that will "replace" RPG, only to end up not replacing RPG?

The Reactions
With each of these new technologies we get a range of reaction from our community.  

Some take the "You must do this or you will fail!" route.  

Others suggest you can keep your current RPG applications, but any and all new development should be done with this new latest and greatest technology.

Finally, some see that these new technologies can be a great addition to your programming arsenal and can be used if and when appropriate.  (This is the camp I fit in for the most part.)

So I have to ask, have we reached the point where RPG is no longer useful, or that we've done all we can do with it?  I don't believe this to be the case at all.

What is "Modern"?
Before we can get into what Modernization means, we should probably define it.

Yep, there's the problem.  Modern is in the eye of the beholder.

Modern to an RPG/III programmer could be free-format RPG.  

Modern could be being able to convert your spooled files to PDF and emailing them.

Modern could be replacing all of your copied and pasted code with ILE subprocedures.

But when an RPG programmer looks at the latest craze in development, do they think "modern" or "unnecessary for the most part"?  After all, they're working on the IBM i.  A machine that can do it all.

Most RPG programmers create and maintain applications to get the job done.  This normally means  applications that crunch numbers (AP, AR, Inventory, etc), perform reporting and keep businesses running.   Not glorious by any means, but very necessary.

Interfacing an inventory application with Twitter or a Blog is the last thing on most application programmer's minds.  

So "what is modern" is a hard question to answer depending on your point of view.  

This is probably why the use of the term "Modernization" is popular... there's no definitive answer to what "modern" is.  We can just label anything (except RPG it seems) as modern.

Why Target RPG Programmers?
It seems that the modernization message is mostly targeted at RPG programmers.  But saying this targeting is being done deliberately would be unfair.  

The fact is that RPG programmers just happen to make up the vast majority of developers on the IBM i.  Because of that, industry leaders, writers and pundits, by default, have an audience of mostly RPG programmers.

Do we really believe that all of these technologies are being ported to the IBM i so that RPG programmers will be forced to drop RPG and use them?  

No!  In fact, it's quite the opposite.  I feel IBM is pushing new technologies to draw a new crowd of developers to the hardware using something they are comfortable with as "bait".

Think of it this way.  If Microsoft ported RPG to PCs, do you think VB, C# or .Net programmers would argue among themselves saying "you have to modernize and start using RPG!"  

Of course not.  To quote Violet Crawley, "That's preposterous!"  (But, it would be pretty cool!)

So why then are RPG programmers being targeted for these new technologies instead of those working on other hardware platforms?  

Could it be the leaders and pundits in our world are just sharing their ideas with their standard audience base with whom they are most comfortable?

Reach Out!
I challenge the leaders and pundits in our industry to this:

Instead of trying to convert or shame the RPG programmer into using the latest and greatest technology that they focus your energies on those on other platforms!  

Step out of your comfort zone!

Extend your audience base to those outside the IBM i world and try to win them over!  

Sell the IBM i as the "do it all system" it is instead of trying to convert RPG programmers to the language of the day.

Converting RPG programmers to use the flavor of the month won't make IBM any more sales to grow our community.

But getting programmers from other platforms to switch to the IBM i will.


17 comments:

  1. BRILLIANT!! Thanks for "penning" this!

    ReplyDelete
  2. Good post Bradley, I like when you say "Most RPG programmers create and maintain applications to get the job done... Not glorious by any means, but very necessary ... Interfacing an inventory application with Twitter or a Blog is the last thing on most application programmer's minds! "

    ReplyDelete
  3. Brilliant Statement! Business people must think about this before they try to switch to new tech as a modernization step.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. After working, for over 20 years, on AS/400 or IBM i or whatever IBM renamed it to just 5 minutes ago, I’m 100% passionate about it. But I think it’s necessary to get our heads out of the sand and face the reality. If we are still talking about modernizing the IBM i, then we must admit that it’s still in the cave. In reality, IBM i technology is so far advanced and better than all other platforms that it does not even need any modernization.

    So, what modernization are we talking about? It’s the modernization of what user see with their eyes – that stone-age Green Screen. A $5 cellphone with mediocre GUI looks more attractive and appealing than a million dollar RPG software with green screen. No wonder 80% of the AS/400s have disappeared from the market along with those RPG jobs. Until the end of last century, half of the IT job openings were for AS/400 programmers. Now you will be lucky to find 1 RPG programmer job in 100 job openings. Please see article: https://www.linkedin.com/pulse/ibm-wasting-superior-technology-jay-oswal-m-s-

    ReplyDelete
    Replies
    1. Thanks for the comment, Jay. I read your article a few days ago.

      It's not IBM's job to force programmers to do anything... it's our job to give the customer what they want. For a lot of heads down entry green screen is what their "muscle memory" wants.

      For some applications a phone app may make sense. So make one! Don't wait for IBM to tell you to.

      IBM gave us a machine we can do anything on.

      That's a double edged sword. There are just too many ways to skin a cat, and with everyone in the IBM i world trying to make a name for themselves and the technology they feel is "make or break", we've lost virtually all the comradery and cohesion that we once had.

      That all started when we were given more choice than green screen.

      That's why I encourage leaders in the world trying to switch RPGers to the flavor of the month, to instead bring those using the flavor of the month to the IBM i platform.


      Delete
    2. You are absolutely right about what all the amazing stuff that CAN be done on IBM i. Unfortunately, we all know that it has not worked for the last 15 years, and it's quite evident from the fact that the population of these excellent machines is continuously declining. Companies did not abandon IBM i because of lack of its amazing abilities to challenge other platforms or because programmers cannot do all the cool stuff. That's not the problem. They abandoned it because of all that EXISTING software with green screen interface. Market is the ultimate verdict.

      Delete
  6. Since I'm a pundit purporting open source languages to RPG programmers I suppose I better respond to your challenge :-)

    When I pitch open source I tell a storyline. One that declares I was unable to meet business deadlines with *only* RPG. Every shop need look no further than their Microsoft .NET programmers (or Java) that were added to the company because we (the RPG staff) couldn't deliver the same value within the same timeline.

    Why is this the case? I believe RPG is a good language. The issue is that our RPG community is incredibly small compared to any of the "flavors of the month"** (PHP, Ruby, Node.js, Java, Python). This means that when we get asked to do something we first need to build plumbing or buy software. The RPG community has a very small open source community to pull from. The other languages don't have this issue and that's a big deal.

    ** Statements like these are obviously not true and are simply inflamatory.

    I used to fight tooth-and-nail for RPG (check the midrange.com forums) and then I participated in a RubyOnRails project. I was able to accomplish significantly more in a shorter amount of time. The bummer at the time is that Ruby wasn't formally supported on IBM i. Now it is. As is Node.js, and Python, and, and, and...

    Switching technologies (especially languages) is a big deal. It shouldn't be a flippant decision. But everyone, for the sake of their business, should be keeping a pulse on what is going on. Ignorance is the worst decision maker. That's what I was four years ago. Some shops can accomplish their goals with only RPG. Great! But let's not discourage people from looking into other options. One of the best things about each of the languages IBM has brought to the platform is that each has its own toolkit to talk directly to RPG (or any other IBM i resource). The toolkits are very slick and make for an excellent modernization plan that includes retaining the existing investment in RPG. No full rewrites necessary. Gradual adoption of open source is a great approach that minimizes risk.

    Concerning inviting others to IBM i. In the past there's been one big problem with that... simple and cost effective access to an IBM i. At KrengelTech we're working at addressing that with Litmis Spaces (http://spaces.litmis.com).

    ReplyDelete
    Replies
    1. Thanks for your comments, Aaron.

      I don't think anyone is discouraging new technologies. We "RPGers" are just sick of the flavor of the month and those who push them at RPGers as do or die. :)

      I actually spoke with a customer just yesterday who still has Synon applications up and running!

      I wish I had more time for node.js because out of all of them, that's what I like best... Hopefully when my new V7R2 machine shows (software showed up yesterday from UPS!) up I'll be able to tackle that.

      I'm also a huge proponent of using things like jQuery.

      But, when we're crunching numbers and just spitting them out to a report, screen or web page... there's no reason to not use RPG for that (along with jQuery, et al to massage the DOM). I don't want layers of complexity between my program and database.

      Delete
  7. >We "RPGers" are just sick of the flavor of the month and those who push them at RPGers as do or die. :)

    Again, they're not flavors of the month. I agree the "do or die" is tiring, but the flavor of the month tag is incorrect.

    >I actually spoke with a customer just yesterday who still has Synon applications up and running!

    Would be interesting to learn whether their business is growing. Whether they've been able to accomplish their objectives with Synon. Whether they have a separate dept/company that does their graphical/web things.


    >I wish I had more time for node.js because out of all of them, that's what I like best...

    Agreed. This is one that seems to have a lot going for it because of the single syntax advantage. Nothing will ever be as simple/seamless as RPG + *DSPF, but Node.js gets us a little closer.

    >But, when we're crunching numbers and just spitting them out to a report, screen or web page... there's no reason to not use RPG for that (along with jQuery, et al to massage the DOM). I don't want layers of complexity between my program and database.

    How often would a web app just stop there? That's why I moved to Ruby and Node.js, because we're past the days where outputting simple reports is acceptable. Instead, businesses are aiming to replace manual keying by internal personnel and instead let customers input data. That requires a more robust experience/flow and technology. The nice thing about open source is a shop can pick a big or small stack so you can keep things lean if you like, or go the full framework route. Lots of options.

    ReplyDelete
  8. Interesting information about IBM RPG. Thanks for sharing the details.

    Legacy Application Modernization

    ReplyDelete
  9. Replies
    1. So proud to be spammed by SEO sharks... That's the big time baby!

      Delete