midrange.com – In My Humble Opinion

Words of wisdom and insight from the IBM i (System i / iSeries / AS400) community

Browsing Posts published by Aaron Bartell

There are a good handful of IBM’ers that take the time to be friends with me despite my sometimes harsh criticisms of their products 🙂 Such is the case as of late while I was attending an IBM ISV Advisory Council meeting and got flustered over a modified feature being implemented in Java when it could have been implemented in RPG and subsequently much more palatable by RPG programmers. IBM’ers Rob Bestgen and Tim Rowe decided to engage me in conversation about my concerns and through that we have some potentially interesting developments!

I wrote an entire article about the topic which can be found here

Please note that at the end of the article I ask some questions of the community and point you to the formal IBM RPG Cafe as a location where you can respond. Make sure to respond!!

Thanks Rob and Tim for going the extra mile on this one!


I was sitting here at my desk after replacing the window motor in my van pondering this thought:

“Man, I think JSF is trying to emulate the RPG cycle with it’s ‘Life Cycle’ (click here), the exact thing that so many RPGers are trying to get away from.”

Or maybe it is better stated to say I hear many wanting IBM to rid RPG of it “legacy” features. I must admit that I have held my hand high with the same chant, though now I must recant. Yeah, I know I am making a stretch to say the JSF and RPG cycles are the same, but none-the-less the Java community is trying to adopt cycles which RPG has had for how many years now?

Makes my head spin to see all the excitement in the browser framework world. Seems like we are always trying to get back to what 5250 screens have had for such a long time – ease of user interface development. No, I am not ignorant to the fact that green screens aren’t very appealing, but the reality of it remains that if RPG had a new GUI face (and maybe a syntax facelift), it could arguably take the application development industry by storm. Just look at all of the efforts by Sun, Microsoft and Adobe to make yet another, “thicker” browser with their JavaFX, Silverlight, and Flex3 respectively.

Makes me wonder how “legacy” RPG and it’s infrastructure really is. I have been with the language for about 10 years now and I left RPG for awhile to have some fun with Java. I loved Java at first because there were some really nice and flashy things that made my heart twitter (twitter would be like the first time you sit next to your future wife, but before you give the first kiss). But even when I factor in how fast you can write Java code, it still comes down to long-term support of the applications built. The Java frameworks out there are very nice, but I can’t count the hours I have spent trying to make something work in Hibernate or MyFaces that just wasn’t meant to be because the writers didn’t have forethought of how others might need to use it.

That’s what keeps bringing me back to RPG, DB2 and i5OS – the trio that just doesn’t die. It has the best framework out there, mostly because you don’t even know you are in one! I can’t help but think what would happen if the cycle was modified to work with a new GUI interface that was native on the i5. Platform independance (i.e. EGL/Java)? Phooey, that is what vendors (of which I am) say to make people think they need their product. I would much rather have “The Trio” to keep my business running efficiently and reliably at a reasonable cost. When will IBM catch on to the potential gold mine they have already built – it just needs “tweaking”. We can dream can’t we? 🙂

Well, it is time to go back to work.

Oh, and on last note, if you haven’t already, please add the following to your list of blogs to visit: iDevelop

Well. I was at the Systemideveloper.com spring conference last week and managed to let my voice be heard during George Farr’s speech to the masses – us RPG programmers. First let me say that I definitely respect George and appreciate many of the things his team does that helps my development efforts. I don’t think I could code RPG in SEU anymore and have fallen in love with WDSC’s RSE and LPEX editor.

With that said I am getting red flags with the things I hear coming out of George’s mouth. Now, I am not one to conjecture, but I can’t help myself in reading between the lines of what George is saying. What is George saying? He is playing his horn to the tune of platform independence and playing it quite happily. Platform independence inherently means Java in my mind (he also mentioned EGL), and that doesn’t bode well for us RPG programmers if that is where IBM would like to see us in 5 to 8 years. I have been a Java programmer for a number of years now (roughly 5) and while I would not consider myself an expert in the language, I have definitely been dating long enough to know that marriage in the town of iSeries is not in the future (if you catch my drift).

Java IS a great language for MANY scenarios (i.e. frameworks, running on printers and the like), but of those it is NOT a replacement business logic language for the iSeries. You see, George gets his ear talked off by vendors that would LOVE to have the iSeries platform to run their Java/EGL web apps. After all, we do have one of the most solid platforms out there. But an iSeries isn’t always easy to sell when you can get an “equivalent” hardware machine for half the price. So that is why vendors aren’t lining up to write next gen apps in RPG. They want to be able to give their customer sub-par hardware and OS (i.e. Wintel) when the customer says the iSeries costs too much. What George doesn’t hear are all of us RPGers that are in the trenches making businesses run and don’t always have time for the scholarly task of learning a scholarly language. We instead are writing code, very fast, so our companies can stay afloat and make money. Should we be slapped around for not getting in the face of George and telling him what we need vs. him giving us what he thinks we want – probably. George’s challenge is to embrace one of the most dedicated programming communities and figure out what makes them tick – what could we use that will take us into the next 10 years of programming. We don’t ask for much, just that we don’t have to learn Java or us it during our runtimes. We simply want four things…

  1. a native web framework, much like JavaServer Faces, but that has nothing to do with Java. When a user clicks a link or button I want to be able to “inject” that right into an RPG sub procedure in my RPG CGI program. CGIDEV2 was great 5 years ago when everyone on the iSeries was learning about HTML, but it just doesn’t cut it for next generation web apps.
  2. a native way to build thick client GUI applications. Use the Smart Client concept so we don’t end up with Visualage RPG. Make all the RPG code run on the iSeries so we don’t run behind in compiler releases. Oh, and WDSC would contain a no additional cost drag’n’drop GUI builder.
  3. language modifications that get us completely into free form. Note that D, H, and F specs aren’t so bad, but the change is mostly so we can market our language to the next generation of programmers (disclaimer – I am 27 years old as I write this).
  4. Rename the language. I am sick of having a Cannondale bike with Huffy stickers plastered all over it. RPG is hardly Report Program Generator today. Interesting how IBM has rename diarrhea for the platform and OS, but RPG has hardly changed names in the past 12 years.

If IBM would get their druthers straight they would realize that platform dependence is an incredibly great thing (for their customers) because it provides tight integration (i.e. RPG/DB2/OS400) allowing fast development of applications, and it inherently keeps customers on the platform which means lots of hardware sales for IBM. Don’t think it can work? Ever heard of a company named Microsoft? How many Microsoft products run natively on Linux? On Unix? On OS xyz? They don’t, and Microsoft gains MANY competitive advantages because of it. (yes I know about mono – hardly counts as Microsoft dropped their support of it a year after they started the initiative) IBM doesn’t even have to pioneer this, they simply have to copy the most successful marketing technology company in the world.

With all that said here is the press release that started this whole thread on SystemiNetwork. See the last couple paragraphs for mention of my name – Aaron Bartell.

[tags]rpg, java, egl, wdsc, ibm, System i, iSeries, os/400[/tags]

I have started to read more of Timothy Pricket Morgan’s (from here on out written as Tim) articles and am liking how he approaches the usefulness of the iSeries. What I mean by that is he realizes that some significant ground could be made in the RPG programming realm if the higher up stiff necks at IBM would come to realize the goldmine of potential they have with the RPG programming language. Read the following post of mine on the web400 archives to see where I am coming from.

I am going to take a little risk here and state NONE of the higher ups making final decisions for not giving RPG due recognition for viable future development have written much RPG code at all (or maybe better stated, they haven’t done so in the last 10 years which seems to be the period of RPG’s evolution), so it is hard to say that they have the right perception of RPG to make the decisions they are making – to say it bluntly they have second hand information that is mixed with much hype of other promising languages. I am surprised that they take the stance they do based on what I hear coming from George Farr who is making some great (and fairly vague) statements about possible new framework level changes coming in RPG.

For the record I will say that about 50% of my development is done in Java (mostly J2EE, but also a lot of J2ME and J2SE) and I feel I can make appropriate high level opinions to state that if IBM spent 1/10th the time on RPG enhancements and tooling as they do with Java that RPG could be the next big thing that bring people to IBM iSeries hardware. Note that I specifically said iSeries hardware. I don’t believe that making a language like RPG platform independent brings a lot of glory other than from geeks like myself. Want proof in the pudding? Take a look at C#.NET. It is grown to the same industry acceptance as Java in about 3 or 4 years, and it took Java 10+ years. By keeping the C#.NET focus directed towards Windows machines Microsoft is afforded the same niceties we have by keeping RPG only on the iSeries. (Note: I am talking mainstays. Yes I know about the .NET Mono project, and yes I know about RPG being able to run on select IBM mainframes).

Here is Tim’s comments that invigorated me to write on the topic. Keep up the good work Tim and let us know if your voice is heard.

Every saga needs a hero, of course, and IBM could, in fact, be that hero if it thought a little outside of the box. (To be fair, by backing down on this compiler issue, IBM is being the hero.) For years, IBM has been trying to use positive reinforcement (RPG IV has great new features), and negative reinforcement (we are killing the old compilers), to get people to try to get companies to move ahead. There might be a better way to get people to move. For instance, what if IBM actually offered really good porting tools and services at a reasonable price to help customers make the jump? It could work with third parties to do this, of course. And what if IBM gave customers goodies if they made the jump. Say, a free six months on a lease of a new System i5? Free Web-enablement for the first 25 or 50 screens? If IBM wants customers to all be on RPG IV, it has to give them a compelling reason to do it. What if someone with some clout–someone like Bill Zeitler, who runs the Systems and Technology Group, or Sam Palmisano, chairman and CEO at IBM–actually said in a Webcast or a presentation that RPG and COBOL have a future, that these are perfectly reasonable alternatives to Java and C#, and made the case why companies should continue to code in RPG or COBOL instead of other languages?

Timothy Pricket Morgan IT Jungle June 26, 2006
[tags]iSeries, RPG, Mono, IBM, Java[/tags]

By now most everybody has heard of the term SOA which stands for Service Oriented Architecture and if you are like others, including myself, you have been inundated with high-level zero-informative type explanations that abstract the definition out to the point of no return. In this blog entry I would like give my take on SOA as it relates to a programmers mind and what I feel the moniker should really be.

Way back in the day when you wrote your first program there was most likely the “Hello World” application that gave you enough gumption to keep on trucking with your IT intentions. Through your first couple months of programming you most likely found places where code was repeated and thus created a maintenance nightmare in trying to keep all instances up to date. If you were fortunate enough to have a modular programming language (i.e. RPG ILE, Java, .NET, PHP, etc) at your disposal you could then take the chunks of code that were repeated in each program and make a separate callable “function” that could be used time and time again.

Wanna know what modularizing your code accomplished and what title you can now add to your next review/resume? That’s right, you are now a bonafide SOA programmer. How is that possible being that SOA is just now surfacing being preached by the masses as the “next great thing”. Well, someone, while walking from the couch to the fridge, manufactured this great concept called “web services” as a means to allow two different languages on two different machines/OS’s to “call” each other. While reaching for the brick of cheese in the fridge they came up with the idea to use HTTP as the transport protocol and XML as the data carrier. Walla! We now have web services. But wait, we need to give this a solid name that will cause IT managers to give us programmers something to research during our lunch hours. So on they way back to the couch, and three mouthfuls of cheese later they came up with the name Service Oriented Architecture. By the time it reached ears the could have named it more effectively SOA had been made into a formidable house-hold name by the forum junkies – so here we are with “SOA”.

Wow! A trip to the fridge can revolutionize the IT industry!

To summarize: If you have written RPGPGM1 that calls RPGPGM2 you have effectively written a Service Oriented Architecture. This latest round of hype is based on the fact that instead of relying on RPG prototypes for passing parameters (or *PLISTs) and OS/400 for making the communication from one program to the next we are using WSDL’s, XML, XSD’s, SOAP and HTTP to accomplish the same task – essentially recreating the program call interface with technologies that are 100% text based. I think a more appropriate name would have been WOA (Web Oriented Architecture) because that denotes more of what is actually occurring and what has changed from our legacy SOA. Not only does it describe it better, but it is much more fun to say in meetings: “Who wants to work on the WOoooaAA project? [all hands go up]” 😉

Just remember, you heard of WOA here first on imho.midrange.com! Comments anyone?

[tags]iSeries, SOA, Web Services, Service Oriented Architecture, XML[/tags]