Every Time a Green Screen Is Created, a Programmer Loses a Job

Article ID: 65237

Green screens are great for quick and dirty command-line tools used by programmers. But beyond the entrenched legacy systems or command-line utility, green screens are the No. 1 cause of all loss of market share for IBM i. No, it is not the green-screen applications you wrote or that your company purchased 20 years ago that are the issue; the problem is the green-screen app that you may be creating today. That green-screen application that was just approved for development is the cause of the loss of RPG—and indirectly i on Power—programming jobs.

Does this sound counterintuitive? If so, you've identified the problem: you think green screens are okay for certain applications, and they are. But they are not good for any new end-user application development of any kind. The only thing a green-screen application does is contribute to the time when your VP of IT is replaced with a Microsoft-weenie and then he or she decides to "replace the AS/400 because it's old." You know the type: "We need to implement agile software." Which, by the way, is the first clue that should indicate their only IT training has been watching Microsoft TV commercials.

Don't get me wrong, Microsoft makes some really interesting stuff, and deserves most of its success. Other operating systems, such as those various Unix-clones, make very usable servers and most are reliable. But "the AS/400" isn't old technology, and it certainly is no older than the Microsoft operating systems running on Intel hardware or the flavor of Unix on most servers. Okay, maybe System/38 was shipped one or two years before Microsoft shipped DOS, but so what? Certainly the IBM "i" operating system of today is no more the CPF of 1980 than Windows 7 is the MS DOS of 1983—a lot has changed. The only real advantage Windows and now Linux have over our operating system is a name that doesn't change every 15 minutes. Ironically, our operating system name is so bad today, that it would actually need to be changed before it could remain the same. I know, this is a sort of "I voted for the war, right before I voted against it" statement, but it is true. The i name is to ambiguous for IBM. Apparently only Apple knows how to market this identifier, as they just renamed their iPhone OS to "iOS," licensing the trademark from Cisco, who owns it. But I digress.

Where IBM Failed AS/400

Bill Gates & Co. were right: graphical user interfaces (GUIs) are "better." Today we know that in the mid-1990s IBM Rochester had the opportunity to move the operating system to a graphical-based user interface. This was happening around the same time as the move of OS/400 to the PowerPC chipset. This move gave OS/400 the platform the performance boost it so badly needed. But for some reason, IBM decided against a GUI for the i platform. This wasn't a simple "thumbs up/down" vote, however. I have heard it was a heated debate that came down to this: "our customers have so much invested in green screens it will be difficult to get them to change."

Of course this was nothing more than the classic: "we've always done it this way so why change now?" I have also heard there was concern about performance. It would have taken a lot to put a native GUI on the platform, but would it perform? If they created dumb-head terminals, (which they did) and allowed a GUI to run on those (which they did) and then allow them to be attached to the i platform (which they did), then the GUI engine could be outboard (off the main system) and therefore not impact performance (which they didn't do). Two retired IBMer's (the same ones who built the original 5250 data stream in the 1970s) independently leveraged all that technology IBM created and didn't use and enable support for a native GUI on the i platform. This happened at least 12 years ago—perhaps more—and it worked great. But on the i platform, unless IBM gets behind a technology (they did not) rarely does it have long-term success. So the two former IBMers stopped selling their GUI just a few years ago.

If IBM had created a GUI and advocated the platform as an end-user product with a server option (like everyone else seems to be doing), then it could have been i from the end-user desktop to the server farm and everything in between. The IBM POWER-based Cell chips used in Nintendo and other video gaming consoles make graphics scream—more than enough power for OS i GUI support. Imagine the graphical performance boost we would have had when Cell came out and was added to the i platform.

It was Lou Gerstner, one of the most respected IBM CEO's of all time, who, in my opinion, made one of the worst decisions any IT industry CEO of all time. What is it? Gerstner said "When something becomes a commodity we won't be in that business." Well, Lou, today all IT hardware is "a commodity," so now what?

Graphical Is Available

Regardless of IBM's decisions some 15 years ago, today the world has made a decision, and there are only two kinds of applications:

  1. Inside the browser or "browser-based" applications
  2. Outside the browser or simply "applications"

The first choice has been available for the i platform for more than a decade; longer than the lifecycle of the original "i" platform, the System/38. The web server and browser have been used to build end-user interfaces for applications on i for so long that only in your shop is it not happening. Yes, you are the only shop not using this technology; and subsequently, you are on a path to Windows, or worse—".NET".

The second application class is an interesting phenomenon. Browser-based application advocates, like Apple and Google, are now suggesting that "outside the browser" applications, or simply "applications" as Microsoft calls them, are the future. Seems to me we've been using out-of-the-browser applications for half a century. Everything runs in circles. But there is a new twist: the GUI technology for these out-of-the-browser applications is web browser-based, not native Windows or native KDE or native X or native OS X GUI controls. In other words, the GUI technology programmers will write to is HTML with an HTML scripting language such as JavaScript, and the operating system will map them to any native interface controls. This could solve one of the handful of platform-porting obstacles that have plagued programmers for decades. If I write for Windows, it doesn't run on Mac OS X or on i. Sure the program logic and code itself could be compiled on other operating systems, but the I/O logic (database and graphical user interface, API calls) don't port at all. By writing to a common user interface (HTML), one of the biggest obstacles to application portability is removed.

Today, HTML and JavaScript are available to RPG, C, C++, Cobol, and even CL programmers on the i platform. Tools like the original CGIDEV2, my own CGILIB service program, and others have been making this capability easy for more than a decade. Third-party tools like those from BCD, Profound Logic, CNX, ATGI, and others have been enabling this technology in their own products for just as long. The iGUI is here and it is HTML.

With these tools and the recent Zend PHP available to i users, you may be able to get by without in-depth knowledge of HTML and JavaScript, but you do need to learn the fundamental HTML concepts, and in the case of PHP, you'll need to learn PHP. Consider HTML knowledge as valuable, in fact, more valuable than your display file DDS knowledge. 

IBM includes the Apache web server "free" with your paid software license. This is the only technology you need on your system to write browser-based and therefore GUI-based applications for i. 

Is there any reason you are not using browser-based user interfaces for your applications? If the answer is "yes," then I think the reason for this may be: Fear

  • Fear of learning HTML
  • Fear of learning JavaScript
  • Fear of asking the boss if he or she will let you use the web browser for that new application.

For me, using HTML and JavaScript is so common place that I find it difficult to use DDS for display files at all. I want to use display file DDS about as much as I want to use RPG II and the RPG Logic Cycle to build new applications—it ain't gonna happen.

Moving to a web browser-based user interface is moving to iGUI. If I can create an end-user application that uses a web browser user interface in less time than the average programmer can clone a subfile program, then so can you. If the whole CGI thing has you confused, there is another, albeit pricier, option in the 7.1 Rational Open Access:RPG Edition API licensed program product. 

Rational Open Access:RPG Edition ("ROARE") provides a way to connect to any type of user interface: browser, green screen, remote database, XML, web services, whatever you want. It doesn't provide you with any of these connections itself, however. Instead, it is merely an API that, like user space APIs, simply lets you or a third party write code that allows RPG to access modern user interfaces or I/O devices using traditional RPG input/output operation codes. In other words, if you've licensed or written the necessary "device driver" you can access, for example, the web browser or other things using the READ/WRITE operation codes and classic RPG processing, no cryptic API calls necessary.

Today, Profound Logic and its Profound UI seem to be ahead of everyone else in the ROARE space—the solution provides a device driver as I'm calling them, for browser-based applications written in RPG. You simply write class RPG operations such as OPEN, READ, WRITE, UPDATE, etc. The Profound UI device driver takes care of talking to the web browser for you. Profound UI offers a turnkey development environment that provides a GUI-based PDM/SEU/SDA toolset that makes user interface and application design as painless as possible.

But not all iGUI applications need ROARE; most simply need a web browser user interface and one of the CGI libraries that I mentioned earlier.

Don't Lose Your Job

Today, GUI means browser-based user interfaces. You can build GUI applications for i (iGUI as I call them) using RPG, HTML, JavaScript, and PHP, so there is no excuse to allow those Microsoft weenies into your shop to take away your job.

The i is so reliable and trusted over other platforms that it's now being installed all over the world in countries such as Russia, where industries like banking or gas and oil are  fast-growing industries. Those systems and applications need to be not only reliable, but secure—secure not just from outside attacks/hacks but from untrustworthy in-house employees. Recently I visited several banks in Russia and I saw i running in these banks. When this kind of security is required, nobody screws around with Windows, and Linux is just too labor intensive to be used efficiently.

Remember, when you have tens of millions, or hundreds of millions, or in some cases, billions of records in the database, those other platforms that a Microsoft-weenie boss might be using at home on his 12-record checkbook application just don't scale up for use in a real-world environment. If he or she is impressed with a sexy WYSIWYG GUI application they use at home, it is your job to let them know the i platform and RPG IV also support GUI applications.

When your company wants a new application, strongly suggest that it be written with a browser-based user interface.

When your company refuses based on "all the other applications are green screen", you must refuse their "we've always done it this way" argument and push for an iGUI solution.

If your company still refuses, suggest that they allow you to write the new application in both green screen and iGUI versions—this will let them see what the i is capable of doing and give you the much needed GUI experience. Remember, you're first five to 10 web-based iGUI applications may not be very user-friendly; you are a programmer, after all.

When your company still refuses, then write the green-screen application and, covertly (perhaps on your own time) write the same application using an iGUI interface. Then when you roll out the app, suggest that they take a look at the browser-based version as well.

If they still refuse, then accept it and continue this practice for the next four or five applications. Then when the new VP of IT is hired and says "green screens are old, we're going to Microsoft" you can say "we've got GUI versions of these applications already". So the "i" suddenly doesn't look so old.

If they still refuse, at least you'll have some web browser-based, iGUI application experience to add to your resume.

Bob Cozzi's RPG World Conference and ShowCase is September 20 to 22, 2010 in St. Charles, IL. Visit www.RPGWorld.com for details.


  • Bob's website: RPGWorld.com is where you find all things RPG IV including our annual Conference and ShowCase.
  • Bob on Facebook: Join the RPG World group on Facebook.com
  • Bob on Twitter: Twitter.com/bobcozzi
  • Bob's Software: RPGLIB is Bob Cozzi's sought after RPG IV add-on library of over 200 pre-written subprocedures. Everything from date conversion to API wrappers to conversion to CSV format. Download a free 30-day trial today at www.RPGLIB.com
  • Bob's free software: RPG Open is Bob's free, open source service program that includes several core features missing from the RPG IV language. Check it out, its free: www.RPGOpen.com

 

Bob, I agree with most of what you wrote except the part about .Net. What is your reason behind the "or worse" knock? I've been an IBM'er for 25 years and an MS guy for about 15, so I know both platforms very well. I love the 400. Nothing beats its integrated database, its stability and its reliability. Microsoft’s .Net also is a fantastic platform, Visual Studio is an unbeatable IDE, and if the shop is not 100% AS/400 (as I still call it) and uses Microsoft Windows as the office platform then .Net is definitely worth a look. I write GUI apps (desktop, web, windows services, etc.) in .Net and they use UDB/DB2 as the database, via stored procedures. Integrating UDB/DB2 and .Net is a no-brainer. I can do things easily with .Net and Visual Studio that are not so easy to do with CGIDEV, Zend/PHP, etc. (and I have experience with some of those). Kicking .Net to the side without an explanation misleads the unacquainted readers of your article. .Net is definitely worth a look . Craig Pelkie may even agree with me. Mike
Fantastic article Bob and I agree, but unfortunately my experience is very similar to the others. I've worked through Net.data, HTML, Java and PHP, developing browser based and GUI apps for the iSeries using both SQL to access the DB or calling RPG routines but this is something I've had to do in my own time and on a very small scale. Most of the shops I've worked in have had 3rd party applications and I've come across a lot of resistance to any suggestions of GUI/Java/PHP and even using RPGIV syntax and ILE. In my last role I developed an app using service programs etc and was accused of using 'new fangled techniques'. My current employer has looked at ILE in the past, but could see no benefit... There's a lot of (justified) critisicm of IBM for failing to market the iSeries but over here in the UK, from my experience, what will kill this machine is not the IT managers but the developers who have made a career out of working on the iSeries but have failed to learn and adapt beyond RPGIII. SteveD
Bob - I have been a fan since I bought The Modern RPG Language book 20 years ago. And I think you are right on. Yet, my situation is very similar to Ed's. I possess the skills, having a background of building in Net.Data, HTML, JavaScript and CGI based web applications. But what I am tasked do at my current job is green screen maintenance programming. We have a vendor package, the vendor bought the product for the customer list. Thus the vendor has no economic incentive to modernize the application; it's a cash cow. They keep the product updated to meet regulatory requirements and that's all. Sure they have a webfaced GUI version of the product avalible. But they do not share the webface source; any changes (from vanilla) have to be bought at custom programming rates ($$$). I too am back to square one. I am just happy to get the code away from RPG III. I believe there's another fear that you did not list: the Boss/Employer not being comfortable with you creating something other than a green screen application. Steve
Superb rant, Bob. You said better than my standard sermon on the topic. However, there is a space for green screen development: radio frequency devices for industrial application. e.g. mobile terminals on warehouse lift trucks. Yes, I know some of the newer devices run GUIs with touch screens but they are not always the right solution in a sub-zero cold storage operation.
Scenario: Except for a few customer-facing or remote-sales facing applications, existing system is entirely DDS/RPG, the vast bulk of it a vendor package (for which we have source). User access to programs is SDA menus. With very rare exceptions, terminals are PC's with emulation software. So if we write a new browser-based enhancement/extension to an existing application set for our internal users, how do they call it? Is there any practical way (that anyone would want to use or program to...) to have an SDA menu option light up a browser application? Or do the users have to leave the green screen, go to their desktop or to start/programs, etc. to get to the new app? The app may be pretty, but how ugly is calling it, when it is impractical or infeasible to rewrite or even reface the entire system?
Bob, I agree with everything you wrote. I followed the path you prescribed: I learned CGIDEV2, re-wrote some major inquiry screens for the web and tried to web enabled as much as possible. I had the luxury of being able to do this without management involvement as the AS400 was not considered the major system of the company. So I learned and had a library of programs to pick from to re-use. I added value to the users and to the AS400 but in the end, none of this mattered as I was a victim of the recession and now I am at a software developer that only uses green screens. So I'm back to square one. No gui, no web enabled, just green screens. Many times what you can and cannot do is a function of where you work and what your employer is paying you to do. I like the web work, it is interesting and dare I say fun to program. But you have to find an employer that is either using it currently or plans to use it and how many are out there? Ed
Hey Bob! Great point, and nice work spelling it out -- definitely when we solve the immediate problem right in front of us, we have a tendency to focus on the close-up item and forget to look ahead where we ought to be going. Do this too much, and boom, there's a cliff or a crash coming. Heck, man, your article is also a metaphor for living your life! --Chris

ProVIP Sponsors

ProVIP Sponsors