La Historia del Lenguaje de Programación RPG (Report Program Generator)

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.
joalweingartt