Editors Note: Jim wrote this article in response to Ted Holts Is RPG Dead? (MC, November 2000).
One thing you can count on in this world is change. You can either embrace change or become apathetic about it. Because of the need for stability, people sometimes become an unwitting accomplice in supporting the comforting arms of complacency that imprison them. IBM has provided that security blanket for RPG programmers for many years. IMHO, those days are numbered.
RPGs short-term continuance will be ensured by the amount of code that currently exists to support businesses worldwide. However, due to business expansion, many older RPG systems are not architecturally sound enough to support the new workload, cannot survive the extensive nature of changes required, and are subsequently replaced.
When systems are replaced, they are not usually replaced with the same technology. How many AS/400 RPG-based systems do you suppose were replaced with PC GUI- based systems as a result of the Y2K problem? How many RPG programmers found themselves replaced along with those systems?
When AS/400 software product vendors meet to discuss what language they will use to develop their new cross-platform product with, how often do they choose RPG over another language? Does this ad look familiar: Position requires at least two years of programming on the AS/400 using RPG or Java. Company is migrating AS/400 systems from RPG to Java. Applications development on the AS/400 is in transition from procedural-based to object-oriented (OO) development. These ads are becoming commonplace in the AS/400 developer market.
Its Not the Language
Learning Java or C++ syntax is simple. Its not the language that most often permits or prohibits understanding of any concept. It is the ability to express your ideas with metaphors or symbols of the culture (OO application development). A small part of that is language syntax, but mostly its about how you put constructs in the language together to communicate a concept (or solution). In the land of C++ and Java, those metaphors and symbols that best communicate a user-centered design are formulated and communicated by a standard modeling notation called the Unified Modeling Language (UML).
Having a language-independent notation such as UML to discuss conceptual constructs that relate to real-world entities and processes enables you to first understand (and accurately depict) the nature of the problemfrom the users perspectivebefore deciding what language(s) will implement the solution.
ILE RPG was a valiant attempt by IBM to extend the language into the 21st century, sadly, reportedly, many people could not look beyond their e-spectacles to utilize ILE RPGs advantages of better integration with a common type system; better modularity and reuse with externally bindable procedures; granular scoping of program resources with activation groups; language-independent exception handling and debugging; and a choice of early, late, or dynamic binding.
So what does the future hold for RPG and those who insist on using it? Unless youre ready to retire, you should stop by your favorite bookstore, pick up a copy of UML Distilled: A Brief Guide to the Standard Object Modelling Language or a similar book, and start learning the ubiquitous language of OO designs. Also download the Whiteboard edition of Together/J (www.togethersoft. com) and start familiarizing yourself with an OO design and analysis tool. Besides helping you learn OO concepts, Together/J will help you learn Java by reviewing the source code it generates. With this knowledge, you should be in a better position to learn the next OOP language in vogue with minimal effort.
The clock is ticking. Where will you be when it strikes midnight? Hopefully, not with the walking dead.