COBOL: el lenguaje que se niega a morir

El lenguaje que mueve tu dinero fue escrito antes de que el hombre pisara la Luna. Y no tiene ninguna intención de retirarse. La historia real de COBOL.

# COBOL: el lenguaje que se niega a morir


El lenguaje que mueve tu dinero fue escrito antes de que el hombre pisara la Luna. Y no tiene ninguna intención de retirarse.

Cada vez que sacas dinero de un cajero, pagas con tarjeta en una tienda o cobras una pensión, hay un programa informático escrito hace más de sesenta años procesando esa transacción. No es una metáfora. Es COBOL. Y su historia es tan absurda que parece ficción.

Diseñado como lenguaje temporal en 1959, hoy hay más de doscientos veinte mil millones de líneas de COBOL en producción —más líneas que estrellas en la Vía Láctea— y el noventa y cinco por ciento de las transacciones en cajeros automáticos del mundo pasan por sus sistemas. Nadie sabe cómo apagarlo. Y lo más irónico: nadie quiere hacerlo.


1959: tres meses para cambiar la industria

A finales de los años cincuenta, cada fabricante de computadoras hablaba su propio idioma. Migrar un programa de una máquina a otra costaba una fortuna: ochocientos mil dólares en programación, más seiscientos mil adicionales solo en migración. A precios de 1959.

El gobierno de Estados Unidos estaba desesperado. Tenía doscientas veinticinco computadoras, ciento setenta y cinco más en camino, y había gastado más de doscientos millones de dólares implementando programas que no se entendían entre sí. Así que el Pentágono convocó una reunión. Y allí apareció la persona que lo cambiaría todo.

Grace Hopper. Matemática. Contralmirante de la Marina estadounidense. Doctora por Yale en 1934. Una de las primeras programadoras del mundo.

Hopper ya había creado FLOW-MATIC, el primer lenguaje de programación que usaba palabras en inglés en lugar de códigos numéricos. Su idea era radical: que un gestor de banco pudiera leer un programa y entender lo que hacía sin ser programador.

Durante tres años le dijeron que era imposible. «Las computadoras no entienden inglés», le repetían. Ella persistió.

En mayo de 1959, cuarenta y una personas se reunieron en el Pentágono. Se creó CODASYL, el comité que diseñaría el nuevo lenguaje. Plazo: tres meses. Tres meses para crear un lenguaje que unificara la industria.

El equipo que hizo el trabajo real fueron seis personas de IBM, RCA y Sylvania, lideradas por Jean E. Sammet, una de las figuras más importantes —y más olvidadas— de la historia de la programación. Y aquí viene uno de los detalles más surrealistas de esta historia: Howard Bromberg, frustrado con la burocracia del comité, compró una lápida de quince dólares con la palabra «COBOL» grabada y se la envió a su jefe. Era una broma. Una lápida para un lenguaje que aún no había nacido.

Las especificaciones se aprobaron en enero de 1960. El primer programa COBOL corrió el 17 de agosto de ese año. Y en diciembre de 1960 ocurrió lo impensable: el mismo programa funcionó en dos computadoras de fabricantes distintos. Habían creado el primer lenguaje portátil de la historia.

Y lo diseñaron para ser temporal. La especificación original decía que sería reemplazado por algo mejor. Un comentarista anónimo escribió en junio de 1960: «Es bastante improbable que COBOL siga existiendo al final de esta década».

Sesenta y seis años después, aquí estamos.


Cómo COBOL conquistó el mundo

El Departamento de Defensa tomó una decisión brutalmente efectiva: si tu computadora no tenía compilador de COBOL, no le vendías al gobierno de Estados Unidos. En tres meses, once fabricantes anunciaron sus compiladores. En 1962, IBM declaró que COBOL sería su lenguaje principal. Para 1970, COBOL ya era el lenguaje de programación más usado del mundo.

¿Por qué ganó? Por varias razones, y ninguna es menor:

Portabilidad. El mismo programa corría en máquinas de distintos fabricantes sin tocar una línea. En una época donde cambiar de hardware significaba reescribirlo todo, esto era revolucionario.

Legibilidad. Los auditores y reguladores podían leer el código sin ser programadores. La sintaxis de COBOL se parece a frases en inglés: MOVE x TO y, ADD tax TO total. La filosofía era que un gerente pudiera entender lo que hacía el programa.

Aritmética decimal exacta. A diferencia de los lenguajes científicos, COBOL no tiene errores de redondeo binario. Cuando manejas dinero, un céntimo que desaparece no es un error de redondeo: es un delito. Ningún banco tolera el redondeo binario.

Procesamiento por lotes. Millones de transacciones procesadas durante la noche mientras todos duermen. COBOL fue diseñado para el mundo real de los mainframes, no para laboratorios.

Bancos, aseguradoras, gobiernos, sistemas de pensiones, impuestos. Todo migró a COBOL. En 1981, Travelers Insurance tenía cuarenta millones de líneas de código. Amenazaron con demandar al comité de estándares si tocaban algo. Se escribieron cientos de miles de millones de líneas sin que nadie imaginara que aquellas prisas de los años sesenta tendrían consecuencias.


El apocalipsis que no fue: Y2K

En los años sesenta y setenta, la memoria de las computadoras costaba hasta cien dólares por kilobyte. Para ahorrar, los programadores guardaban los años con dos dígitos: «85» en vez de «1985». Nadie pensó que aquellos sistemas durarían treinta o cuarenta años.

Pero duraron. Y cuando el calendario se acercaba al año 2000, el mundo descubrió algo aterrador: «00» se interpretaría como 1900. Cálculos de intereses, vencimientos de hipotecas, edades de pensionistas. Todo fallaría.

Alan Greenspan, presidente de la Reserva Federal, confesó en 1998: «Soy uno de los culpables. Escribí esos programas en los sesenta. Nunca se nos ocurrió que durarían décadas».

Lo más increíble es que alguien lo había visto venir. Bob Bemer, uno de los padres de COBOL, identificó el problema en 1958. Pasó veinte años intentando alertar a IBM, al gobierno y a la ISO. Lo ignoraron completamente.

El coste global de la remediación se estima entre trescientos mil y seiscientos mil millones de dólares. Solo Estados Unidos gastó unos cien mil millones. Miles de programadores COBOL jubilados fueron recontratados de emergencia para arreglar código que ellos mismos habían escrito décadas atrás.

Y funcionó. Los fallos el 1 de enero de 2000 fueron mínimos. Bill Clinton lo llamó «el primer desafío del siglo XXI superado con éxito». Pero aquí está la ironía: en lugar de reemplazar COBOL, simplemente lo parchearon y lo dejaron correr.


2020: el año que el gobernador suplicó por televisión

Hoy hay más de doscientos veinte mil millones de líneas de COBOL en producción. La Vía Láctea tiene unos doscientos mil millones de estrellas. Hay más líneas de COBOL activas que estrellas en nuestra galaxia.

El noventa y cinco por ciento de las transacciones en cajeros automáticos pasan por sistemas COBOL. El ochenta por ciento de los pagos con tarjeta. El cuarenta y tres por ciento de los sistemas bancarios mundiales. El IRS, la Seguridad Social estadounidense, Medicare. Todo COBOL.

En abril de 2020, el desempleo en Estados Unidos se disparó al 14,7 %. Los sistemas estatales de desempleo —escritos en COBOL— colapsaron. No podían procesar el volumen de solicitudes ni implementar las nuevas ayudas federales.

El gobernador de New Jersey, Phil Murphy, apareció en televisión y dijo literalmente: «Necesitamos programadores de COBOL. Tenemos sistemas que llevan décadas funcionando».

El problema es que los programadores de COBOL se están extinguiendo. La edad promedio es de cincuenta y cinco a sesenta años. Las universidades dejaron de enseñarlo en los noventa. Hay una frase recurrente en la industria: «La persona que escribió este código probablemente ya no está viva».

Y sin embargo, un programador COBOL junior puede ganar entre ochenta mil y ciento veinte mil dólares al año en Estados Unidos. Bastante más que un desarrollador web recién salido de un bootcamp.


Por qué nadie lo apaga

¿Por qué no se apaga y ya está?

El Commonwealth Bank of Australia gastó setecientos cincuenta millones de dólares y cinco años para migrar su sistema de COBOL a otra plataforma. El banco británico TSB intentó una migración en 2018: un millón novecientos mil clientes se quedaron sin acceso a sus cuentas durante semanas. Coste: trescientas treinta millones de libras en compensaciones.

La regla de la industria es demoledora: migrar un sistema COBOL grande cuesta más que mantenerlo treinta años más.

Pero el problema real es más profundo. Décadas de reglas de negocio están codificadas directamente en COBOL sin documentación aparte. Cambios legislativos, reformas fiscales, ajustes de la seguridad social. Todo fue implementado directamente en el código durante cincuenta años. El código fuente de COBOL es la única fuente de verdad. Nadie —literalmente nadie— sabe todo lo que hace el sistema.

Sustituir COBOL no es un proyecto informático. Es arqueología digital. Ingenieros pasan años leyendo código para entender qué hace antes de poder tocarlo.

Hay una analogía que lo resume: cambiar un sistema COBOL es como cambiar el motor de un avión en pleno vuelo. No puedes apagarlo. No puedes equivocarte. Y lleva pasajeros dentro.


El futuro: convivencia, no sustitución

¿Entonces qué hacemos?

IBM apuesta por la convivencia. Sus mainframes modernos, como el z16 lanzado en 2022, procesan billones de transacciones al día con segundos de inactividad por década. Y permiten que Java y COBOL corran en la misma máquina. No hay que migrar: el código antiguo y el nuevo conviven.

La estrategia más común hoy es el *wrapper*: encapsular el COBOL detrás de APIs modernas. El núcleo financiero sigue siendo COBOL, pero el usuario ve una app bonita en el móvil sin saber qué hay detrás.

En 2023, IBM lanzó watsonx Code Assistant for Z, una inteligencia artificial entrenada con millones de líneas de COBOL real que traduce código automáticamente a Java. Prometedor, pero no mágico. El experto humano sigue siendo necesario.

Mientras tanto, el Open Mainframe Project, impulsado por la Linux Foundation, ofrece cursos gratuitos de COBOL. Bootcamps están añadiendo módulos de COBOL. Hay demanda, hay salarios altos y hay futuro. Solo en Estados Unidos, un programador COBOL junior gana más que el promedio de un desarrollador web.


El fantasma digital de 1960

Diseñado como lenguaje temporal en 1959. La lápida que Howard Bromberg compró antes de que COBOL naciera es hoy la metáfora perfecta: le compraron una tumba y el lenguaje los ha enterrado a casi todos.

Cada vez que pagas con tarjeta, hay un fantasma digital de 1960 procesando tu compra. Y no tiene planes de jubilarse.

Grace Hopper tenía un reloj en su despacho que andaba hacia atrás. Se lo enseñaba a sus alumnos y les decía: «Los humanos somos alérgicos al cambio. Les encanta decir: «siempre lo hemos hecho así». Yo intento luchar contra eso».

COBOL es la prueba definitiva de que tenía razón. Más de seis décadas después, seguimos haciendo lo mismo.

Porque funciona.


*¿Te ha gustado este artículo? Compártelo con alguien que todavía piense que COBOL es cosa del pasado.*

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *