La Historia del Lenguaje de Programación RPG (Report Program Generator)
RPG es uno de los lenguajes de programación más longevos y exitosos en el mundo empresarial, especialmente en entornos IBM. Aunque mucha gente lo asocia con sistemas antiguos como el AS/400, su evolución lo ha convertido en un lenguaje sorprendentemente moderno.
Orígenes (finales de los 50 y 1960)
- 1959: IBM desarrolla el precursor llamado FARGO (para IBM 1401), un sistema para generar informes automáticos desde tarjetas perforadas.
- 1964: Nace oficialmente RPG (Report Program Generator) para la familia IBM 1400 y System/360. Su propósito inicial era sencillo: generar reportes a partir de archivos de datos de forma eficiente, sin necesidad de programar en ensamblador o lenguajes más complejos.
Era un lenguaje column-based (de posición fija), inspirado en las tarjetas perforadas. El programador definía:
- Fichas (Files)
- Entrada (Input)
- Cálculos (Calculation)
- Salida (Output)
RPG II (años 70)
- Introducido con el System/3 (1969-1970).
- Se convirtió en el lenguaje estrella de las minicomputadoras medianas de IBM: System/32, System/34, System/36.
- Añadió más potencia: subrutinas, mejor manejo de datos y lógica condicional.
- Se usó masivamente en empresas medianas para sistemas de facturación, inventarios, contabilidad, etc.
RPG III y RPG/400 (finales 70 y 80)
- RPG III (System/38 y AS/400, 1978-1988): Gran salto. Introdujo programación estructurada (IF-ENDIF, DO loops, subrutinas), mejor manejo de pantallas y bases de datos.
- Con el lanzamiento del AS/400 en 1988, se popularizó enormemente como RPG/400. El AS/400 (luego iSeries, System i, e IBM i) fue un éxito rotundo en empresas medianas y grandes, especialmente en distribución, manufactura y finanzas.
RPG IV / RPGLE (1994 en adelante) – El gran renacimiento
En 1994, con OS/400 V3R2, IBM lanza RPG IV (también llamado RPG ILE por el Integrated Language Environment):
- Sintaxis mucho más moderna.
- Soporte para módulos, procedimientos, prototipos (como funciones).
- Tipos de datos avanzados, fechas, tiempo, etc.
- Integración con C, Java, SQL, XML, web services, etc.
A partir de los 2000, especialmente con RPG Free (formato libre, sin columnas fijas), el lenguaje se volvió mucho más legible y cercano a lenguajes modernos como Java o C#.
Estado actual (2020s)
- RPG Free + ILE es la forma recomendada.
- Soporta programación orientada a objetos (parcial), JSON, REST APIs, SQL embebido, etc.
- Sigue siendo extremadamente eficiente en IBM i (antes AS/400/iSeries).
- Miles de empresas en todo el mundo (especialmente en EE.UU., Europa y Latinoamérica) tienen sus sistemas críticos escritos en RPG.
¿Por qué sigue vivo?
- Estabilidad legendaria: Un programa RPG de los 90 puede seguir corriendo hoy con pocos cambios.
- Rendimiento: Excelente manejo de bases de datos DB2 for i.
- Productividad: Para lógica de negocio transaccional sigue siendo muy productivo.
- Modernización: Muchas empresas están convirtiendo código antiguo a RPG Free + servicios web.



