Worried about a platform switch? Being proactive about exploring web development and webfacing your green-screen apps could help.
It's probably difficult to find an IBM i developer or IT manager who hasn't at some point lost sleep over the possibility that a C-level fiat, or another action beyond their control, might find them facing a mandate to change platforms away from the IBM i. The ubiquity of Microsoft Windows in executive awareness, a misplaced perception by some that the i platform isn't being used by "major" companies, and the relative availability of developers in their early careers who are familiar with other platforms (compared to that of those experienced on the i) are just a few of the potential perils threatening our favorite box.
The real question, though, is what to do about it. Whether a move to switch platforms is an active problem in your environment, or simply a potential one, what's some good advice for navigating through this peril?
A Strong Platform with Some Weak Developers
"It's important to emphasize the IBM i's strengths," Seeney maintains. "Above all else, the IBM i is known to be a secure processor, which is a key element when opening up the processor to the Internet. Moreover, it has a great database in DB2 and an HTTP server that makes it a great web server. For the rookie IBM i web developer, the operating system and primary language RPG are already familiar to them.
"In my opinion, the main factor in the way of enterprises fully using the IBM i is the available programming talent and their outdated skillset. Many of the current practitioners are in the twilight of their careers and are thus disinclined to learn new technologies. However, in technology one has to re-educate oneself to remain current and viable in the workforce. Older developers find this wearisome and tend to rely on their current skillset to get them through to retirement in their current job. People are not willing to put in their personal time to learn something new.
"Furthermore, IBM i programming talent is comparatively more expensive than the younger web-focused programming talent. I believe this is a job-security hazard due to a short-sighted view of some experienced programmers. If mature IBM i developers were to lose their jobs, finding similar alternative employment will be difficult, if not impossible. The parochial knowledge that many IBM i developers have of their company and the applications systems therein also make it difficult for the institution to adapt to a modernization strategy."
App Modernization Is a Key
Seeney continued, "Modernization of core applications is the key to continued viability for the IBM i. You already have everything you need to do web development on the i.
• You can reface applications to run on the internal company intranet by using business logic embedded in existing applications.
• Start small by encapsulating your business processes within stored procedures or subprocedures that you can name and call from a variety of languages.
• Use SQL instead of native DB2 definitions of database files, which lets you move toward stored procedures.
• Modularize application functions and access them via object-oriented techniques.
"There is a humorous adage that goes something like, 'There are two types of people in technology: Those that understand what they do not manage and those that manage what they do not understand.' Too often in IBM i shops, the manager is a former developer whose technical skills have become rusty and do not extend to familiarity with web development. This can mean there is resistance to deploying new technology beyond the comfort level of the technology manager lest that impact their own job security."
"We on the i Must Adapt"
"Web development on the IBM i became a reality through the introduction of a service program known as CGIDEV (subsequently superceded by CGIDEV2). The service program enabled RPG programs to interface with browsers through a series of subprocedures. This has worked well, but after three decades of use, there are still comparatively few adopters. Why? The age of many developers discourages them from learning new techniques, a source of frustration for many modernization advocates. As an illustration, I can count only about a dozen IBM i web developers in the New York City area. But if the web paradigm continues to dominate, we on the i must adapt.
"Above all, I recommend that you learn PHP. PHP is an interpretive language and the ubiquitous language of the Internet. It's relatively simple to learn and generally available on all platforms. You don't even need the Internet; you can learn PHP on a laptop by downloading a freeware utility onto your PC that will set up a web server and facilitate development practice in PHP. Wampserver.com offers a free download of a web development environment for Windows that lets you create web apps with Apache2, PHP, and a MySQL database. You can also obtain a Wamp server from sourceforge.net and other sources you can identify with a search engine. Then there is the option of running PHP on your IBM i. Zend Technologies provides an executable that facilitates running PHP natively on the IBM i.
"PHP runs in the IFS on the IBM i. A simple connection to the DB2 database enables retrieval of existing corporate data through stored procedures. In addition, you can achieve access to business logic via an API called the ToolKit, which enables execution of subprocedures and returns data to the caller. Calls to the ToolKit can be verbose and tricky to debug, but once you've gained a familiarity with it, it yields easily maintainable code. What's more, PHP enables a brevity of code that makes it easier to use for web development than RPG. For example, you can handle web functions that take four pages of RPG with a half-page of PHP code."
"For the system manager, PHP talent is widely available and less expensive than RPG talent. A PHP developer can be effective developing on the IBM i without prior experience on the platform. For the IBM i PHP developer, having this skill incidentally creates potential employment opportunities in organizations where the IBM i platform is not present. In effect, a PHP developer becomes platform-independent.
"I have one client that was an early adopter of web technologies. The system manager was something of a pioneer, although not a programmer, and is still on the job to this day. Currently, the company is refacing their RPG browser programs with PHP equivalents that operate offshore and are not native IBM i developers. There is one IBM i developer who writes the DB2-side stored procedures and subprocedures. The development process is working well and comparatively inexpensively.
"The alternative to modernization through custom conversion is to deploy a commercial webfacing solution. These solutions do the job but, in my opinion, are expensive and don't really give the existing IBM i development staff the web-based skillset that is needed to maintain the business application. So I think the implementation of a commercial webfacing solution deployed on an institution’s IBM i is good for the enterprise, but not so much for the existing development staff."
Share Your Story
Do you have a story to tell about saving the IBM i at your enterprise, or an enterprise at which you worked previously, that you would be willing to share? For confidentiality, we can obscure the enterprise name and/or other revealing details. If so, please contact