Conecta con nosotros

A Fondo

COBOL cumple sesenta años en plena forma

Publicado el

Univac

No es ni el más atractivo, ni el más flexible y desde luego, ha sido superado en prestaciones por decenas de nuevos lenguajes de programación. Y sin embargo COBOL, que esta semana cumple sesenta años, está en plena forma.

Su fuerte orientación al mundo de los negocios y el hecho de que durante décadas no haya tenido competencia ha provocado que por ejemplo, incluso hoy en día, el 95% de las transacciones en cajeros automáticos de todo el mundo siguen dependiendo de COBOL, mientras que los desarrolladores especializados en este lenguaje añaden cada día 1,5 millones de nuevas líneas de código a unos mainframes que ni pueden ni quieren actualizar. Esta es su historia.

Un lenguaje para unirlos a todos

Poco antes del nacimiento de COBOL, a mediados de los años cincuenta, las empresas tenían que lidiar con un «panorama informático» que destacaba por la falta de uniformidad y la «fragmentación» de los sistemas.

Cada fabricante de ordenadores tenía su propia forma de trabajar y cada marca empleaba un «código máquina» propietario que resultaba totalmente incompatible con todos los demás. Esto tenía la ventaja por supuesto que los programas que se desarrollaban para los mainframes de IBM o Univac estuviesen totalmente «optimizados» para sus equipos, pero también impedía la portabilidad de los distintos programas. Y aunque la mayoría de las empresas únicamente tenían un ordenador, en las más grandes que sí podían permitirse adquirir más de uno, esto podía convertirse en todo un problema.

Esto motiva que a principios de 1959, Mary K. Hawes por entonces programadora en Burroughs Machines (compañía que tras su fusión con Sperry UNIVAC se convertiría en la conocida Unisys) plantee públicamente la necesidad de desarrollar un lenguaje de programación que sea universal, compatible con la mayoría de los ordenadores en los que cada vez más están confiando las empresas, sobre todo en áreas como el cálculo de nóminas, el mantenimiento de registros o el cálculo de transacciones financieras. Un Common Business Orientated Languaje (COBOL) que en su propio nombre da respuesta a una demanda real.

Pero como años más tarde ocurriría con el desarrollo de Internet, para que COBOL empezase a desarrollarse hubo que esperar a que el Departamento de Defensa de Estados Unidos recogiera el guante. El ministerio, que llevaba dos años trabajando con un FORTRAN (The IBM Mathematical Formula Translating System) propone a medaidados de ese año la creación de un grupo de trabajo cuya misión sea el desarrollo e impulso del nuevo lenguaje de programación.

Al frente del mismo se sitúa Grace Hopper, experta informática que en su hoja de servicios constaban méritos como haber sido la primera programadora en haber trabajado en el Mark I (el primer ordenador electromecánico construido en IBM y enviado a Harvard en 1944).

Conocida entre sus amigos como Amazing Grace, impulsó la idea de construir el nuevo lenguaje combinando dos tecnologías muy populares de la época: Flow-Matic desarrollado por ella misma y el COMercial TRANslator (COMTRAN) de IBM. Cuando las primeras especificaciones del nuevo lenguaje se aprobaron en 1960, el mundo descubrió que no solamente se había puesto en marcha el germen de un lenguaje de programación que aspiraba a ser universal, sino por primera vez, de uno que huía de la jerga excesivamente técnica (e incomprensible) de la época, apostando por un idioma inglés que cualquiera podía leer.

Primeros años: de COBOL-60 a COBOL-68

Para finales de 1960, la primera versión del nuevo lenguaje, COBOL-60, se implementa a modo de prueba en un ordenador RCA 501 y un UNIVAC II y se demuestra que la portabilidad de programas, lo que se dice funcionar, funciona.

¿El problema? Esa primera versión de COBOL resultaba ser mucho más lenta que el código máquina que utilizaban los distintos fabricantes. Compilar cien líneas de código podía llevar más de diez minutos, lo cual era una eternidad, incluso para la época.

El problema se soluciona parcialmente un año más tarde, cuando COBOL-61 entra en escena. Era desde luego mucho más rápido que su predecesor, pero a cambio, presentaba muchas incompatibilidades con la primera versión. Habría que esperar hasta 1963, año en el que se publican las Especificaciones Extendidas COBOL-61 para ver cómo se solucionan muchas de estas incompatibilidades y hasta 1965, cuando la nueva versión COBOL-65 incorpora soporte para almacenamiento masivo y tablas.

Pese a los avances, COBOL aún estaba lejos en ese momento de ser un lenguaje mainstream y de hecho, no fue hasta el lanzamiento de COBOL-68 cuando consigue despertar un interés real en el mercado.

El lenguaje más popular

Para 1970 COBOL era ya el lenguaje más popular en todo el mundo, superando de largo a un BASIC que, desarrollado a mediados de la década de los 60, aspiraba a hacerle competencia.

En esa década varios grupos de trabajo continuaron empleándose a fondo para corregir las deficiencias que no obstante seguía planteando, apostando por una mayor depuración del código y un mejor manejo de las funciones string.

Estos esfuerzos encontraron sin embargo su contrapeso a principios de los años 80, en unos primeros años en el un ejército de abogados y usuarios hicieron lo posible para detener el avance de nuevas versiones del lenguaje. ¿El motivo? Su miedo, en parte justificado, a tener que reprocesar millones de líneas de código legacy que podrían quedar automáticamente obsoletas si en la nueva versión de COBOL los estándares cambiaban de forma incompatible con lo anterior.

Como consecuencia, hubo que esperar hasta 1985 para que una nueva versión (obviamente COBOL-85) estuviera disponible de forma generalizada, incluyendo novedades como funciones END-IF y subprogramas anidados.

A medida que los 80 fueron convirtiéndose en los años 90, la popularidad de COBOL comenzó a resentirse y nuevos lenguajes y sistemas operativos comenzaron a amenazar su reinado. Pese a ello, el tener una amplísima base de «hierro» instalada y realmente difícil de migrar a sistemas más modernos le garantizaba seguir siendo un lenguaje ampliamente aceptado y utilizado por todo tipo de empresas en una situación que se ha prolongado hasta el día de hoy.

En este sentido, en 2019 sigue habiendo cientos de empresas en todo el mundo «atrapadas» por la necesidad de tener que seguir contratando programadores de COBOL, que en algunos casos su única función es asegurarse que millones de líneas de código con décadas de antigüedad sigan funcionando.

Sesenta años después de la publicación de su primera versión, se sigue continuando con su desarrollo y se incluyen nuevas funciones. Amparado desde hace unos años por Micro Focus, se presenta en estos momentos como estándar que puede integrarse con otros lenguajes (Java, C++, C#) y preparado desde su nueva versión Visual COBOL 4 para desplegarse en todo tipo de plataformas modernas, incluyendo el cloud y contenedores como Docker.

Pero lo cierto es que aunque a muchos managers les gustaría olvidarse de un lenguaje que por muchos motivos es obsoleto, migrar a algo más moderno es un proceso largo, costoso y muy arriesgado…por lo que resulta mucho más sencillo mantener intactos unos sistemas legacy que siguen funcionando.

Periodista tecnológico con más de una década de experiencia en el sector. Editor de MuyComputerPro y coordinador de MuySeguridad, la publicación de seguridad informática de referencia.

Lo más leído