"I have been writing RPG longer than some of you reading this have been alive. One recurring theme that occurs every seven or eight years is the infamous "RPG is dead" theme. Still, here we are in 2010 writing new applications in RPG IV—many of which will probably be running 30 years from now." (...) At that point in time, the C language was becoming very popular in college and university and we started to hear how RPG programmers should start learning C, or they would have no future. A few years later C++ was all the rage, and we heard the same line of advice about it related to RPG III, blah, blah, blah.RPG está atado al futuro del ISeries (o AS400). Sólidamente integrado al sistema operativo, durará tanto como dure el ISeries. El RPG es capaz de sacar del ISeries lo mejor suyo. ¿Y cuánto durará éste? Por ahora, parecería que ni IBM puede matarlo...
The one consistent theme that helps push people to another programming language or application architecture is interface. When RPG III supported the 5250 devices better than anything else, people moved to it. C and C++ didn't really bring anything new to the midrange user interface table except an antiquated teletype output capability. So unless you were writing system-level code, midrange programmers ignored C and C++. Today, I use C for low-level routines or when RPG IV can't handle it. It is rare that I can't do something in RPG IV, but it's good to know that I can "drop into" C, or better yet, C++ when I need to.
Java was also largely ignored by the vast majority of midrange programmers. An infamous "vocal few" did evangelize Java to i shops, but it really doesn't provide any new interface capabilities beyond what could already be done with native RPG and DDS or the growing list of OS/400 APIs. So while Java adoption has found its way into a relatively large percentage of midrange shops, and many of those shops have at least one Java programmer, in many cases if a shop has moved entirely to Java, it subsequently moved off this operating system platform and onto lower-cost Intel/Linux or even WinTel solutions.One cool thing I enjoy using Java for is "Internet CL." I use Java like CL when web or Internet work needs to be done, such as the SendMail application or the POI interface. Again, interface is key to the success of the implementation. In these two situations Java does something we can't easily do with RPG IV and traditional APIs. So Java should be used. Another use is cross-platform support. Perhaps even better than C, Java brags about being cross-platform independent, and largely it is. So if you have one of those third-party code generators, query tools, or report writers that generate Java (such as the hugely popular mPower from mrc), you're one step ahead of creating a catalog of platform-independent solutions.
Claramente, el problema no está en los lenguajes: para el RPG mismo, existen distintas variantes de generadores de código que intermedian la relación con el código. La gran variedad de lenguajes que proliferan aceleran la presencia de otro nivel de herramientas, capaces de superar la diversidad, y de articular lo mejor de cada uno de ellos: los que permiten el desarrollo basado en modelos, plantillas, metadeclaraciones, según el sabor de cada uno. Lejos está la época en que una aplicación podía basarse en un sólo lenguaje, en un solo hardware, y en una sola empresa. Para la etapa presente de la tecnología, el punto de vista debe estar un escalón por encima de cada lenguaje.