Después de 20 años de desarrollo, GnuCOBOL está listo para la industria
Madurez de GnuCOBOL y cumplimiento de estándares
- Se considera “listo” en gran parte por su estabilidad y su alto cumplimiento de COBOL‑85 (se aprobaron ~97% de las pruebas).
- Los comentaristas señalan que incluso muchos COBOL propietarios nunca alcanzan el cumplimiento total del estándar.
- Usa GNU MP para la aritmética, a fin de igualar el comportamiento tradicional de precisión fija de COBOL en lugar de flotantes IEEE‑754.
- Le faltan funciones más recientes de COBOL, como objetos y mensajería, de estándares recientes (p. ej., COBOL 2022/2023).
El papel de COBOL en los sistemas actuales
- La mayor parte de COBOL en producción está en mainframes de IBM, fuertemente acoplado con JCL, bases de datos (DB2, IMS, DMS) y monitores de transacciones (CICS, ACMS).
- También es común en plataformas no IBM: OpenVMS, OS2200, distintas variantes de Unix y x86/Linux con proveedores como Micro Focus.
- Se usa mucho en finanzas, nóminas, facturación, ERP y otras cargas de trabajo de back office “aburridas pero críticas”.
Mainframes frente a la nube y la fiabilidad
- Los mainframes se describen como diseñados para disponibilidad de “cinco nueves”, con redundancia extrema y tiempos de inactividad muy raros.
- Las caídas que sufren los bancos a menudo se atribuyen a la infraestructura de servidores circundante, no al núcleo del mainframe.
- Se critica que los “cinco nueves” de la nube son sobre todo un SLA de facturación/créditos, no una operación realmente ininterrumpida.
- Algunos informan de entornos de mainframe que, en la práctica, sí son frágiles, por lo que las afirmaciones de fiabilidad no son universales.
Migración, ecosistema y JCL
- GnuCOBOL se ve solo como la mitad de una historia de migración: todavía necesitas JCL, monitorización de transacciones al estilo CICS y bases de datos al estilo mainframe.
- JCL se considera esencial para batch; REXX se usa a menudo para generar JCL en lugar de reemplazarlo.
- Muchos intentos de migración (incluida la transliteración de COBOL a C) se describen como dolorosos o como sistemas resultantes difíciles de mantener.
- Se citan como patrón común las reescrituras modernas fallidas o repetidas sin fin de sistemas COBOL.
Corrección numérica y “aritmética del dinero”
- La aritmética decimal y la precisión fija de COBOL son clave para los sistemas financieros.
- Portar a lenguajes que por defecto usan coma flotante binaria es arriesgado; existen equivalentes correctos (BigDecimal, etc.), pero no son idiomáticos y pueden ser lentos.
- Este comportamiento matemático es una de las principales razones por las que las organizaciones dudan en abandonar COBOL.
Características del lenguaje y experiencia del desarrollador
- COBOL es verboso y orientado a la definición de datos, pero muchos lo consideran sencillo para su dominio previsto.
- Los diseños estáticos de datos fuertes (cláusulas PICTURE) evitan desbordamientos de búfer y corrupción de memoria; la memoria se define explícitamente, no se asigna dinámicamente.
- Las partes difíciles tienen menos que ver con la sintaxis y más con la complejidad del dominio y las herramientas de mainframe.
- Sigue existiendo desarrollo nuevo en COBOL, aunque de nicho, a menudo como parte de plataformas ERP o heredadas más grandes.
Por qué persiste COBOL heredado
- Las reglas centrales de contabilidad, nóminas y finanzas cambian lentamente; los sistemas existentes encarnan décadas de legislación, acuerdos sindicales y casos extremos.
- A menudo no existe un conjunto completo de requisitos actuales fuera del propio código en ejecución; el sistema es, en efecto, la especificación.
- Los cambios incrementales en COBOL son más baratos y menos arriesgados que las reescrituras completas, especialmente cuando nadie entiende del todo toda la lógica de negocio.
- Muchos sistemas “viejos” son naves de Teseo: muy modificados con el tiempo, pero nunca sustituidos fundamentalmente.
Perspectivas de adopción y escepticismo
- Entusiasmo por GnuCOBOL como compilador gratuito y orientado a estándares, y como posible herramienta de migración.
- Escepticismo de que las grandes instalaciones de mainframe vayan a cambiar por restricciones regulatorias, dependencia del ecosistema y aversión al riesgo.
- Algunos dudan de que muchos proyectos greenfield eligieran COBOL hoy; la mayoría espera que siga siendo un lenguaje de mantenimiento y cambio incremental.