Con la llegada de las primeras computadoras en el período final de la Segunda Guerra Mundial como proyectos de investigación de las Universidades (o como descifradoras de códigos criptográficos) y su posterior fabricación de manera industrial para su despliegue en centros de investigación y empresas, cada computador poseía un lenguaje de programación propio y, por tanto, los programas no se podían llevar de un computador a otro distinto salvo que el código se adaptase. La llegada de las computadoras a las empresas supuso un punto de inflexión en la gestión de las nóminas o la contabilidad y, gracias a la gestión por computador, mejoraron muchos procesos en las empresas.

Sin embargo, cada computadora requería su propio lenguaje y eso suponía aumentar la curva de aprendizaje de los técnicos de las empresas, sobre todo, si la compañía adquiría una nueva computadora. En 1958, muchos profesionales de la industria estaban de acuerdo en que era necesario buscar una normalización que permitiese trabajar con un único lenguaje en cualquier computador así que, gracias a la formación de un consorcio entre varias empresas de la industria de los computadores y el Departamento de Defensa de Estados Unidos, se convocó el CODASYL (Conference on Data Systems Languages) para buscar un lenguaje de programación que pudiera ser un estándar en el ámbito de la gestión, así fue como nació el lenguaje de programación COBOL (Common Business-Oriented Language, cuyo nombre fue otorgado el 18 de septiembre de 1959).

¿Y quiénes formaban este consorcio de empresas y entidades gubernamentales? La patronal del sector de los fabricantes de computadoras estaba representada por Burroughs Corporation, IBM, Minneapolis-Honeywell, RCA, Sperry Rand y Sylvania Electric Products. Por otro lado, el gobierno de Estados Unidos estaba representado por la Fuerza Aérea de Estados Unidos, la Armada de Estados Unidos (a través de un centro de investigación, el David Taylor Model Basin) y la Oficina Nacional de Estándares (que ahora se denomina Instituto Nacional de Estándares y Tecnología). A partir de estos participantes, se crearon diversos comités que, como suele ocurrir, no eran demasiado operativos excepto, como no, el comité más técnico que estaba formado por un grupo reducido que logró entenderse bastante bien.

CODASYL1959

El lenguaje de programación COBOL es fruto del consenso del grupo de trabajo formado por la Oficial de la Armada de Estados Unidos Grace Hopper, William Selden, Gertrude Tierney, Howard Bromberg, Howard Discount, Vernon Reeves y Jean E. Sammet. Grace Hopper ya había desarrollado en 1955 el lenguaje de programación Flow-Matic y, por otro lado, en IBM habían desarrollado el IBM COMTRAN, dos lenguajes que se utilizaron como referencia y base a la hora de desarrollar COBOL.

¿Qué es COBOL? Además de ser uno de los lenguajes de programación más antiguos que se conocen (y que además sigue utilizándose), fue un lenguaje que se definió en un tiempo récord (apenas 6 meses) con las siguientes características:

  • Orientado de manera expresa a la automatización de procesos relacionados con el negocio
  • Utilización de nombres de hasta 30 caracteres que, además, podían unirse usando guiones (permitiendo que el código fuese legible al poder usar nombres en variables bastante autoexplicativos)
  • Cada variable se define en detalle, es decir, había que especificar el número de dígitos a usar y la posición del punto decimal y la posibilidad de definir campos estructurados
  • Los archivos que se obtenían como salida estaban formateados para su impresión, algo que era de agradecer en el manejo de datos contables
  • Programación visual con la posibilidad de utilizar objetos
  • Uso de bibliotecas de clases
  • Para evitar errores de redondeo con la conversión a binario (y evitar errores contables), COBOL manejaba números en base diez
  • La sintaxis de COBOL es muy similar al idioma Inglés, evitanado el uso de símbolos y haciendo que personal no programador, como un gerente, pudiese echar un vistazo al código y entender lo que éste podía hacer

Los primeros compiladores de este lenguaje se desarrollaron en 1960 y, tras esto, los días 6 y 7 de diciembre de ese mismo año se llevó a cabo la prueba de fuego: escribir un programa en COBOL para ejecutarlo en dos computadores de fabricantes distintos (una computadora de RCA y una Univac de Remington-Rand), dado que las pruebas fueron satisfactorias (y el programa funcionaba correctamente).

UNIVAC-1-GraceHopper

Este nuevo lenguaje, compatible y orientado a los negocios, se hizo muy popular y propició la generación de una comunidad de entusiastas que comenzaron a realizar aportaciones que provocaron una revisión del lenguaje y una nueva versión en 1965. Posteriormente, en 1968, se lanzaría la primera versión ANSI de COBOL (que también sería revisada en 1974, 1985, 1989 con la adición de funciones matemáticas y el año 2002). A pesar de su popularidad, no gustó a todo el mundo y surgieron algunos detractores de este lenguaje como Edsger Dijkstra:

El uso de cobol paraliza la mente, por lo tanto, su enseñanza debería considerarse una ofensa criminal.

De hecho, para ser un lenguaje nacido en 1959, se está preparando desde hace unos años una nueva versión de COBOL, un hecho que puede sorprender a muchos. ¿Y por qué COBOL sigue estando vigente? Decir que este lenguaje está vigente, bajo mi punto de vista, es quedarse algo corto porque los programadores que conocen el lenguaje COBOL son profesionales muy cotizados en el sector de la banca y las empresas que trabajan con grandes mainframes que requieren una gran capacidad de proceso por lotes. Los programas realizados en COBOL, tras más de 50 años de uso, son considerados extremadamente fiables en las empresas y, dado que manejan datos críticos (facturación, contabilidad, etc), muchas de éstas suelen ser conservadoras y no cambiar lo que ya funciona perfectamente.

Código Cobol - NeoTeo

Pensemos que existen más de 200 mil millones de líneas de código en COBOL en sistemas que están en producción en sectores como la banca o en administraciones públicas, donde la fiabilidad es un requisito y donde el mantenimiento de estos sistemas es mucho más barato que abordar una migración a otros sistemas (con menos garantías de fiabilidad contrastada). De todas formas, los que recuerden la histeria del Efecto 2000 que iba a paralizar el mundo, quizás se acuerden que la banca, por ejemplo, era uno de los sectores que se habían identificado entre los que podían tener problemas porque COBOL codificaba el año con dos dígitos.

Hay una frase de Bill Gates que resume perfectamente bien lo que ha supuesto COBOL al mundo de la programación y la eterna vigencia de este lenguaje:

No sé qué lenguajes habrá en el futuro, pero seguro que Cobol estará todavía allí

La verdad es que creo que la frase de Gates es más que acertada y, seguramente, COBOL seguirá vigente bastantes años más.

Imágenes: Computer Museum, Tons of it, Bulletin of the Computer Conservation Society y NeoTeo