domingo, 13 de julio de 2025

LENGUAJE RPG400

¡Hola! Prepárate para adentrarte en el mundo de RPG/400, un lenguaje que es tan fundamental para el funcionamiento de muchas empresas como quizás poco conocido fuera de ciertos círculos. Es el corazón silencioso de innumerables sistemas empresariales que manejan billones de dólares y datos críticos cada día.

1. Definición de RPG y Evolución Histórica

RPG significa Report Program Generator. Como su nombre lo indica, nació con un propósito muy específico, pero ha evolucionado enormemente.

  • ¿Cuándo y por qué fue creado? RPG fue creado por IBM en 1959 para los ordenadores IBM 1401 y 1410. Su propósito original era precisamente ese: facilitar la generación rápida de informes empresariales a partir de datos. En una época donde las computadoras eran costosas y el procesamiento de datos era una tarea manual y tediosa, RPG permitió a los programadores (y a veces incluso a los usuarios de negocio con una pequeña formación) crear informes personalizados de manera más eficiente.
  • ¿Qué versiones existen (RPG II, III, RPG/400, RPG IV o RPGLE)? RPG ha pasado por varias transformaciones significativas:
  • RPG I (1959): La versión original, muy orientada a tarjetas perforadas y a la generación de informes simples.
  • RPG II (1969): Una versión mejorada y más potente para los sistemas System/3, System/32 y System/34. Introdujo más capacidades de procesamiento y lógica.
  • RPG III (1979): Con el lanzamiento del System/38 (el precursor directo del AS/400), RPG III se volvió más sofisticado, incorporando características de lenguajes estructurados como llamadas a subrutinas y más control de flujo. Ya no era solo para informes.
  • RPG/400 (1988): Esta es la versión que debutó con el lanzamiento del AS/400. Era básicamente RPG III optimizado para la nueva arquitectura del AS/400 y su sistema de gestión de bases de datos integrado (DB2/400). Muchas organizaciones todavía tienen código legacy en esta versión.
  • RPG IV (también conocido como RPGLE o ILE RPG) (1994-presente): La versión más importante y moderna. Con la llegada de la arquitectura ILE (Integrated Language Environment) en el AS/400 (ahora IBM i), RPG IV se transformó en un lenguaje moderno, permitiendo la programación orientada a objetos (a través de procedimientos de servicio), la integración con otros lenguajes ILE (C, C++, COBOL, Java) y, crucialmente, la sintaxis de formato libre (Free Format RPG).
  • ¿Cómo evolucionó desde un generador de reportes hasta un lenguaje estructurado moderno? La evolución fue impulsada por la necesidad de manejar aplicaciones empresariales cada vez más complejas. Lo que comenzó como un "rellenador de formularios" (definiendo campos de entrada, cálculos y campos de salida) evolucionó para incluir:
  • Lógica de control: Capacidad para tomar decisiones (IF/ELSE), bucles (DO/ENDDO).
  • Procesamiento de archivos: Lectura y escritura complejas en bases de datos.
  • Subrutinas y procedimientos: Modularización del código.
  • Acceso a funciones del sistema operativo: Integración con el entorno.
  • Formato Libre: La adición del formato libre en RPG IV liberó a los programadores de la restrictiva sintaxis columnar, permitiendo un código más legible y similar a otros lenguajes modernos. Esto fue clave para su supervivencia.

2. ¿Qué es RPG/400 específicamente?

RPG/400 es un término que a menudo se usa para referirse a la versión de RPG que se usaba en el sistema AS/400 en sus inicios, pero de forma más amplia, se usa para referirse al ecosistema RPG en la plataforma IBM i.

  • ¿Qué lo distingue de otras versiones? RPG/400 (como una designación específica de IBM) se refiere a la versión de RPG (principalmente RPG III) que era nativa del sistema operativo OS/400 (el sistema operativo del AS/400) antes de la llegada de ILE RPG. Su principal característica distintiva era su sintaxis estrictamente columnar y su fuerte acoplamiento con las bases de datos de archivos físicos/lógicos nativos del AS/400. No tenía las capacidades de programación orientada a objetos ni la flexibilidad de formato libre de RPG IV (RPGLE).
  • ¿Qué plataforma lo usa (AS/400, IBM i)? RPG es el lenguaje nativo principal de la plataforma IBM AS/400, que fue renombrada a IBM iSeries y ahora simplemente IBM i. Esta plataforma es un servidor de rango medio conocido por su:
  • Integración: Hardware, sistema operativo (IBM i), base de datos (DB2 for i) y capas de seguridad están altamente integrados y optimizados.
  • Fiabilidad: Reputación legendaria por su tiempo de actividad y estabilidad.
  • Seguridad: Capacidades de seguridad robustas a nivel del sistema operativo.
  • Escalabilidad: Capacidad para manejar grandes volúmenes de transacciones y datos.
  • ¿Qué tipo de arquitectura y entorno lo rodean? La plataforma IBM i opera en una arquitectura basada en procesadores Power Systems de IBM. Su entorno es muy particular:
  • Arquitectura basada en objetos: Casi todo en IBM i es un "objeto" (programas, archivos, colas de mensajes, etc.), lo que simplifica la gestión y la seguridad.
  • Base de datos integrada (DB2 for i): A diferencia de otros sistemas donde la base de datos es un software separado, DB2 está profundamente integrado en el sistema operativo, ofreciendo un rendimiento y una fiabilidad excepcionales.
  • Sin interfaz de usuario directa para el servidor: Tradicionalmente, se interactúa con el IBM i a través de terminales de texto 5250 (emuladores de pantalla verde) o, más recientemente, a través de interfaces gráficas web y clientes de escritorio.
  • ILE (Integrated Language Environment): Una arquitectura que permite a los programas escritos en diferentes lenguajes (RPG, COBOL, C, Java) llamarse entre sí, compartir variables y crear programas modulares. Esto es clave para la modernización.

3. Características Técnicas de RPG/400

Las características del RPG/400 (y, en general, de RPG) lo hacen único y muy adecuado para su nicho.

  • Sintaxis fija (columnar): Esta es la característica más reconocible de las versiones antiguas de RPG (RPG II, III, RPG/400). Cada instrucción debe escribirse en columnas específicas de la línea de código, lo que la hace muy rígida. Por ejemplo, el tipo de operación va en las columnas 28-32, los factores en otras, etc.
  • Ejemplo (Formato fijo):

FARCHIVOIN UF A K DISK KINFSR *PSSR FARCHIVOSAL O E PRINTER D CAMPO1 S 5P 0 D CAMPO2 S 5P 0 C EVAL CAMPO1 = 10 C EVAL CAMPO2 = 20 C ADD CAMPO1 CAMPO2 TOTAL C MOVEL 'TOTAL: ' TOTAL C WRITE REPORTE C SETON LR ```

  • Contraste (Formato Libre RPG IV - RPGLE):
    /FREE
    Dcl-s Campo1        Packed(5);
    Dcl-s Campo2        Packed(5);
    Dcl-s Total         Packed(5);

    Campo1 = 10;
    Campo2 = 20;
    Total = Campo1 + Campo2;

    Dsply ('TOTAL: ' + %char(Total));
    *Inlr = *On;
    /END-FREE
    El formato libre es mucho más parecido a lenguajes modernos.
  • Tipado de datos: RPG es un lenguaje fuertemente tipado. Las variables deben ser declaradas con su tipo (numérico, alfanumérico, fecha, etc.) y su longitud precisa. Esto contribuye a la robustez y precisión del procesamiento de datos. Los tipos numéricos pueden ser empaquetados (P), binarios (B), enteros (I), flotantes (F), etc., cada uno optimizado para diferentes usos.
  • Uso de archivos físicos y lógicos (DB2): La integración profunda con la base de datos DB2 for i es central para RPG.
  • Archivos físicos: Contienen los datos reales y sus definiciones de campo (tablas).
  • Archivos lógicos: Son "vistas" sobre los archivos físicos, permitiendo ordenar los datos de diferentes maneras, seleccionar subconjuntos de campos o registros, o unir datos de múltiples archivos sin duplicarlos. RPG tiene declaraciones y operaciones específicas para interactuar eficientemente con estos archivos.
  • Procedimientos, subrutinas, estructuras: RPG IV (RPGLE) permite una programación modular robusta.
  • Subrutinas (EXSR): Bloques de código reutilizables dentro del mismo programa.
  • Procedimientos: Unidades de código más independientes que pueden ser llamadas por otros programas o procedimientos (parte de ILE), permitiendo la creación de módulos de servicio y facilitando la programación orientada a objetos (aunque no es POO nativa del lenguaje).
  • Estructuras de datos: Permite agrupar campos relacionados en estructuras complejas, similar a struct en C o clases en otros lenguajes.
  • Integración con CL (Control Language), COBOL y otros lenguajes IBM: Gracias a la arquitectura ILE (Integrated Language Environment), los programas RPG pueden llamar a programas CL (el lenguaje de scripting del IBM i), COBOL, C, C++ y Java, y viceversa. Esto es fundamental para la modernización, permitiendo que nuevas partes de una aplicación se escriban en Java o Node.js y se comuniquen con el código RPG existente.

4. Ventajas y Limitaciones

Aspecto

Ventajas

Limitaciones

Robustez

Extremadamente estable, confiable y seguro. Pocos bloqueos del sistema.

Curva de aprendizaje empinada para la sintaxis columnar (legacy).

Rendimiento

Optimizado para el hardware IBM i y DB2 integrado, muy eficiente para grandes volúmenes de transacciones.

Dependencia de la plataforma IBM i (aunque se ejecuta en Power Systems).

Seguridad

Capacidades de seguridad a nivel de sistema operativo muy sofisticadas.

Percepción de ser un lenguaje "antiguo" o "muerto".

Integración

Fuerte integración con el sistema operativo, base de datos y otros lenguajes ILE.

Ecosistema de herramientas de desarrollo menos moderno y diverso que lenguajes populares.

Auditoría

Facilidad para rastrear y auditar transacciones.

Poca visibilidad fuera del nicho de IBM i.

Legado

Existencia de millones de líneas de código probadas durante décadas.

Dificultad para atraer a desarrolladores jóvenes (falta de formación universitaria).

Ventajas en aplicaciones empresariales críticas: Su principal ventaja radica en su fiabilidad inigualable y su capacidad para gestionar el procesamiento transaccional de alto volumen con una precisión extrema. Para bancos, aseguradoras y sistemas gubernamentales donde un segundo de inactividad o un error de cálculo pueden costar millones, la estabilidad del IBM i y la precisión de RPG son insuperables.

Dificultades: La curva de aprendizaje es un desafío, especialmente para los desarrolladores acostumbrados a IDEs modernos y sintaxis flexible. La dependencia de IBM significa que las herramientas y el soporte están ligados a un solo proveedor. La sintaxis antigua (formato fijo) puede ser un shock para quienes no están familiarizados con ella.

5. Ejemplos de Código RPG/400 (RPGLE Free Format)

Nos centraremos en RPG IV de formato libre (/FREE.../END-FREE) porque es la forma moderna de programar y la que se está promoviendo.

Estructura básica de un programa

     H DFTACTGRP(*NO) DCLOPT(*BASE)

     /FREE
      // Este es un comentario en formato libre

      Dcl-s Nombre      Char(20);        // Declaracion de variable de texto
      Dcl-s Mensaje     Char(50);        // Declaracion de variable de texto

      Nombre = 'Mundo';                  // Asignacion de valor

      // Concatenacion y asignacion
      Mensaje = 'Hola ' + %TrimR(Nombre) + ' desde RPG!';

      Dsply Mensaje;                     // Mostrar mensaje en pantalla

      *Inlr = *On;                       // Indica fin de programa
     /END-FREE

  • H DFTACTGRP(*NO) DCLOPT(*BASE): Son especificaciones de cabecera. H indica una línea de cabecera. DFTACTGRP(*NO) indica que el programa no debe ejecutarse en el grupo de activación por defecto, DCLOPT(*BASE) para compatibilidad.
  • /FREE y /END-FREE: Delimitan el bloque de código de formato libre.
  • //: Comentarios en formato libre (similar a C++ o Java).
  • Dcl-s Nombre Char(20);: Declara una variable Nombre como tipo carácter (Char) con una longitud de 20. Dcl-s es para variables simples (standalone).
  • Nombre = 'Mundo';: Asigna el valor 'Mundo' a la variable Nombre.
  • Mensaje = 'Hola ' + %TrimR(Nombre) + ' desde RPG!';: Concatena cadenas. %TrimR elimina los espacios en blanco del lado derecho.
  • Dsply Mensaje;: Muestra el contenido de Mensaje en la consola (o pantalla 5250).
  • *Inlr = *On;: Es una de las "indicadores" intrínsecas de RPG. *Inlr (Last Record indicator) puesto a *On (verdadero) indica al sistema que el programa debe terminar.

Lectura de archivos y validación

Imagina que tienes un archivo físico PRODUCTOS con campos PRODID (ID de producto), PRODDESC (Descripción) y PRODPRECIO (Precio).

     FPRODUCTOS IF   E             DISK

     /FREE
      Dcl-s PrecioMin   Packed(7:2) Value(10.00);
      Dcl-s PrecioMax   Packed(7:2) Value(100.00);

      // Leer el primer registro del archivo PRODUCTOS
      Read PRODUCTOS;

      // Bucle mientras haya registros y no sea fin de archivo
      DoW Not %EOF(PRODUCTOS);

         Dsply ('Producto ID: ' + %Char(PRODID));
         Dsply ('Descripcion: ' + PRODDESC);
         Dsply ('Precio: ' + %Char(PRODPRECIO));

         // Logica condicional
         If PRODPRECIO < PrecioMin;
            Dsply '*** ERROR: Precio por debajo del minimo!';
         ElseIf PRODPRECIO > PrecioMax;
            Dsply '*** ERROR: Precio por encima del maximo!';
         Else;
            Dsply 'Precio valido.';
         EndIf;

         // Leer el siguiente registro
         Read PRODUCTOS;
      EndDo;

      *Inlr = *On;
     /END-FREE

  • FPRODUCTOS IF E DISK: Define el archivo PRODUCTOS como un archivo de entrada (I) en disco (DISK).
  • Dcl-s PrecioMin Packed(7:2) Value(10.00);: Declara una variable numérica empaquetada (optimizado para valores monetarios) de 7 dígitos con 2 decimales, inicializada.
  • Read PRODUCTOS;: Lee el siguiente registro del archivo PRODUCTOS y sus datos se cargan en los campos definidos en la estructura del archivo.
  • DoW Not %EOF(PRODUCTOS); ... EndDo;: Un bucle Do While que continúa mientras no se alcance el fin del archivo (%EOF es una función intrínseca para verificar el fin de archivo).
  • If ... ElseIf ... Else ... EndIf;: Estructura condicional estándar.
  • %Char(): Convierte un valor numérico a carácter para poderlo mostrar.

Uso de Subrutinas (EXSR)

     H DFTACTGRP(*NO)

     /FREE
      Dcl-s Numero      Packed(3:0);

      Numero = 5;
      ExSr CalcularCuadrado;  // Llama a la subrutina

      Numero = 10;
      ExSr CalcularCuadrado;  // Llama de nuevo a la subrutina

      *Inlr = *On;

     // Subrutina para calcular y mostrar el cuadrado
     BegSr CalcularCuadrado;
        Dcl-s ResultadoCuadrado Packed(6:0);
        ResultadoCuadrado = Numero * Numero;
        Dsply ('El cuadrado de ' + %Char(Numero) + ' es ' + %Char(ResultadoCuadrado));
     EndSr;
     /END-FREE

  • ExSr CalcularCuadrado;: Invoca la subrutina llamada CalcularCuadrado.
  • BegSr CalcularCuadrado; ... EndSr;: Define el bloque de código de la subrutina. Las variables declaradas dentro de la subrutina pueden ser locales, o si se declaran fuera, son globales.

6. Comparación con Otros Lenguajes para IBM i

La plataforma IBM i soporta múltiples lenguajes, cada uno con sus fortalezas.

Característica

RPG

COBOL

CL (Control Language)

Java

Propósito Principal

Procesamiento transaccional, lógica de negocio, informes.

Procesamiento batch, financiero, transaccional.

Scripting, automatización de tareas, control de jobs.

Aplicaciones modernas, web, APIs, integración.

Sintaxis

Formato libre (moderno), Formato fijo (legacy).

Verboso, similar a inglés.

Basado en comandos IBM i.

Orientado a objetos, estándar de la industria.

Integración con DB2

Muy profunda y nativa.

Muy buena, también nativa.

Básica, para ejecutar comandos de base de datos.

A través de JDBC/SQL, estándar, pero no tan nativa.

Rendimiento

Muy alto para I/O y cálculos en IBM i.

Muy alto para procesamiento de archivos y cálculos.

Bueno para automatización, no para lógica compleja.

Depende del diseño, rendimiento de JVM.

Curva de Aprendizaje

Media a alta (si se aprende legacy).

Media (verboso, pero claro).

Baja para comandos básicos, media para programas CL.

Media (amplio ecosistema).

Mantenibilidad

Muy buena en formato libre.

Buena (auto-documentado).

Media a baja para programas CL complejos.

Buena (modularidad, POO).

¿Cuál es más utilizado y por qué? RPG sigue siendo el lenguaje más utilizado para la lógica de negocio central en la plataforma IBM i. La mayoría de las aplicaciones empresariales críticas en IBM i están escritas en RPG.

  • CL: Es esencial para la automatización, para llamar programas RPG/COBOL, gestionar archivos, y controlar el flujo de los procesos. No es un lenguaje para la lógica de negocio pesada, sino para el "pegamento" del sistema.
  • COBOL: También es muy prevalente en IBM i, especialmente en sistemas heredados de banca y seguros, a menudo en conjunción con RPG.
  • Java: Ha ganado terreno para nuevas aplicaciones, interfaces de usuario web, APIs y modernización, ya que permite a las empresas aprovechar el hardware y la estabilidad de IBM i con un lenguaje y un ecosistema de desarrollo más estándar y moderno.

El uso de los lenguajes a menudo se complementa: RPG/COBOL manejan el core transaccional, CL los automatiza, y Java/Node.js/Python proveen las interfaces y la integración moderna.

7. Estadísticas Reales de Uso Actual (Actualizadas a 2024 o 2025)

Obtener estadísticas precisas y en tiempo real sobre el uso de lenguajes de nicho como RPG es un desafío, ya que no hay encuestas masivas como para Python o JavaScript. Sin embargo, los informes de la industria y encuestas dirigidas a la comunidad IBM i ofrecen una imagen clara:

  • ¿Cuántas empresas lo siguen usando? Se estima que más de 100,000 empresas en todo el mundo utilizan la plataforma IBM i (incluyendo sus antiguos nombres AS/400/iSeries). Una gran mayoría de estas empresas tienen aplicaciones críticas escritas en RPG. Esto incluye desde grandes corporaciones hasta medianas empresas.
  • ¿En qué países o sectores tiene más presencia?
  • Países: Norteamérica (EE. UU., Canadá) es donde se encuentra la mayor concentración, seguido de Europa Occidental (Alemania, Reino Unido, Francia), Japón y Australia. También tiene presencia significativa en América Latina.
  • Sectores:
  • Banca y Servicios Financieros: Muy fuerte. Miles de bancos y cooperativas de crédito.
  • Seguros: Numerosas aseguradoras grandes.
  • Retail (Minoristas): Gestión de inventarios, puntos de venta, cadena de suministro.
  • Manufactura: Planificación de recursos empresariales (ERP), gestión de producción.
  • Distribución y Logística: Sistemas de almacén, transporte.
  • Administración Pública/Gobierno: Seguridad social, impuestos, salud.
  • ¿Qué porcentaje de bancos, aseguradoras y gobiernos todavía lo usan? No hay un porcentaje exacto público, pero las estimaciones de expertos de la industria (como Common, el grupo de usuarios de IBM i) y proveedores de soluciones para IBM i sugieren que un porcentaje muy elevado (posiblemente entre el 60% y el 80% o más) de las principales instituciones financieras, aseguradoras y organismos gubernamentales a nivel global todavía tienen una dependencia significativa de los sistemas IBM i/AS/400 que ejecutan código RPG. El volumen de transacciones críticas que pasa por estos sistemas es asombroso.
  • ¿Cuántos desarrolladores RPG quedan activos en el mundo? Esta es una pregunta difícil de cuantificar. Las encuestas de la comunidad IBM i (como las de HelpSystems o el estudio "State of IBM i") muestran que la edad promedio de los desarrolladores RPG está en aumento, con una gran proporción de profesionales cerca de la jubilación. Esto implica que la cantidad total de desarrolladores RPG puros está disminuyendo, pero la demanda de nuevos talentos (o de desarrolladores con experiencia en otros lenguajes que puedan ser entrenados en RPG) está creciendo debido a la escasez. Es un mercado de nicho, pero con alta demanda.

8. Demanda Laboral y Futuro del RPG/400

A pesar de las predicciones de su desaparición, RPG y la plataforma IBM i están experimentando una "renaissance" debido a los esfuerzos de modernización.

  • ¿Hay empleos para programadores RPG/400 en 2025? Absolutamente sí. Y es probable que la demanda se mantenga fuerte en los próximos 5-10 años o más. La escasez de talento significa que los salarios para los desarrolladores RPG experimentados son competitivos, y hay oportunidades para roles de consultoría, migración y modernización. Las empresas no pueden simplemente deshacerse de sus sistemas core.
  • ¿Qué tecnologías IBM lo están modernizando (ILE, Free Format RPG)? IBM y la comunidad están invirtiendo en la modernización de RPG y la plataforma IBM i:
  • ILE (Integrated Language Environment): Ya mencionado, permite la interoperabilidad entre RPG, COBOL, C, C++ y Java.
  • Free Format RPG (RPG IV): La sintaxis moderna que facilita la lectura y escritura, y atrae a nuevos desarrolladores.
  • Servicios Web y APIs: La capacidad de exponer la lógica de negocio de RPG como servicios web o APIs (REST) es fundamental. Esto permite que las aplicaciones web y móviles modernas accedan a los datos y la lógica del IBM i sin que el desarrollador frontend necesite conocer RPG.
  • Open Source en IBM i: IBM ha impulsado fuertemente la adopción de herramientas y lenguajes de código abierto como Node.js, Python, PHP, Git, y herramientas de automatización como Ansible, que pueden ejecutarse directamente en la plataforma IBM i, lo que facilita la integración y el desarrollo moderno.
  • Rational Developer for i (RDi): Un IDE moderno basado en Eclipse que reemplaza las interfaces de texto antiguas.
  • ¿Qué empresas siguen contratando RPG developers? Todas las empresas mencionadas en el punto 7 (grandes bancos, aseguradoras, minoristas, fabricantes, empresas de logística y el sector público) están contratando activamente. Además, las empresas de consultoría de TI especializadas en la modernización de IBM i también tienen una alta demanda de expertos en RPG.

9. Herramientas y Entornos de Desarrollo

El desarrollo en RPG ha evolucionado de las "pantallas verdes" a IDEs más amigables.

  • SEU (Source Entry Utility), PDM (Program Development Manager):
  • SEU: El editor de texto tradicional basado en pantalla 5250 (la "pantalla verde"). Es un editor de formato fijo, columna por columna. Todavía lo usan muchos desarrolladores experimentados por su rapidez en ciertas tareas.
  • PDM: Una utilidad de gestión de objetos también basada en pantalla 5250, que permite navegar por librerías, programas, archivos y ejecutar comandos.
  • Ambos son herramientas legacy, pero siguen siendo funcionales y ampliamente usadas.
  • RDi (Rational Developer for i):
  • El IDE moderno de IBM para el desarrollo en IBM i. Está basado en Eclipse.
  • Ofrece resaltado de sintaxis, autocompletado, refactorización, depuración gráfica, integración con control de versiones (Git), y es compatible tanto con RPG de formato fijo como libre, COBOL, CL y Java.
  • Es la herramienta recomendada por IBM para el desarrollo moderno en IBM i.
  • Emuladores o terminales para programar en RPG:
  • Los desarrolladores usan emuladores de terminal 5250 (como IBM i Access Client Solutions - ACS, MochaSoft, TN5250) para conectarse al IBM i y usar SEU/PDM, o para ejecutar programas y probarlos.
  • ¿Qué IDE modernos permiten programar en RPG Free Format?
  • RDi (Rational Developer for i): Es la opción principal y más completa.
  • VS Code: Con extensiones adecuadas (como la extensión Code for IBM i de Mihael Schmidt y otros colaboradores), VS Code se ha convertido en una opción muy popular y moderna para escribir RPG Free Format, COBOL, CL, y trabajar con archivos y miembros en el IBM i. Ofrece integración con Git y muchas características de IDE que los desarrolladores esperan.

10. ¿Se puede aprender RPG hoy?

¡Sí, y de hecho, es una buena inversión para ciertas carreras!

  • Libros, cursos, laboratorios gratuitos:
  • Libros: Busca libros actualizados sobre "RPG IV" o "ILE RPG". "RPG IV By Example" y "Programming in ILE RPG" son clásicos.
  • Cursos Online: Algunas plataformas (Udemy, LinkedIn Learning) tienen cursos. IBM a veces ofrece cursos directos o a través de partners.
  • Comunidad: La organización COMMON (common.org) es un grupo de usuarios de IBM i muy activo que ofrece conferencias, seminarios web y recursos educativos.
  • Blogs y Foros: Muchos blogs de expertos en IBM i (ej. de Scott Klement, Susan Gantner, Paul Tuohy) son excelentes recursos.
  • IBM i Global Solutions Directory: Puedes buscar partners de IBM que ofrecen formación.
  • Simuladores o entornos para prácticas sin tener una AS/400 real:
  • Servidores de prueba o "sandboxes" de IBM i: Algunas empresas o proveedores de soluciones IBM i ofrecen acceso a sistemas de prueba por una tarifa.
  • Emuladores: Si bien no emulan todo el sistema operativo, los emuladores de terminal 5250 te permiten interactuar con un sistema real.
  • Programas académicos: Algunas universidades o institutos técnicos que tienen acuerdos con IBM pueden tener acceso a hardware IBM i para sus estudiantes.
  • Comunidad, foros, y recursos recomendados:
  • Foros de IBM i: Sitios como mcpressonline.com, itjungle.com, y los foros de COMMON.
  • Grupos de LinkedIn: Hay varios grupos activos de profesionales de IBM i y RPG.
  • GitHub: Busca proyectos RPG para ver código real.
  • YouTube: Hay canales de expertos que suben tutoriales y demostraciones de RPG.


En resumen, RPG/400 (y, más precisamente, ILE RPG) es un lenguaje crucial para el mundo empresarial, con una historia rica y un futuro asegurado por la inmensa inversión en sistemas core. 


Si bien no es tan "sexy" como Python o JavaScript, el conocimiento de RPG en la plataforma IBM i sigue siendo una habilidad muy valorada y con una demanda laboral estable.


0 Comentarios:

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]

<< Página Principal