61 años de COBOL el Lenguaje de Programación Legendario

COBOL fue uno de los primeros lenguajes de programación que aprendí, junto con 3 o 4 versiones de Basic, dBase II, y TurboPascal.

Cuando tenía 14 años me gané una beca para estudiar la carrera de Analista Programador, y en ese momento Cobol era uno de los lenguajes mas demandados por las grandes empresas. Los otros lenguajes eran utilizados para las cosas mas triviales, comunes o sistemas sencillos.

Debido al avance de la informática y la aparición de las computadoras personales, las aplicaciones comerciales o de pequeña industria requerían aplicaciones menos robustas. Por lo cual nunca utilicé COBOL después de finales de los 80´s. Pero no tengo idea de cómo se ha desarrollado el lenguaje en los últimos 40 años.

Para que mis historias de terror programando en COBOL no se distorsionen demasiado en este artículo, he tenido que consultar varias fuentes. Así que pudiera que alguna parte de la información pueda que no este del todo exacta. 

Grace Hopper¿Qué es COBOL?

COBOL (COmmon Business Oriented Language) nació a fines de la década de 1950 para facilitar la vida de los programadores y poder escribir mejores programas. Hasta entonces, la programación se realizaba principalmente en ensamblador, directamente a nivel de procesador, por así decirlo, con una sintaxis muy limitada. Aunque 1960 se considera el año del nacimiento de COBOL, los primeros compiladores estuvieron disponibles desde 1961.

Grace Murray Hopper, una doctora en matemática que supo vencer los prejuicios de género, conocida como la ‘Madre del COBOL’ fue quien dio origen a uno de los lenguajes de programación mas importantes de todos los tiempos.  Aunque Hopper no tuvo un papel principal en el desarrollo del mismo, la influencia del FLOW-MATIC en su diseño hizo que se la considerara como la creadora del COBOL.

Con COBOL, se implementó por primera vez un lenguaje de programación que se asemeja al idioma inglés en su conjunto de instrucciones (contiene instrucciones como ADD, MOVE, IF, CALL) y, por lo tanto, se abstrae del nivel de la máquina. Esto facilitó la creación de programas, y el desarrollador pudo concentrarse más en la tarea a resolver en lugar de pensar en la implementación. Al mismo tiempo, el mantenimiento de los programas creados en COBOL se hizo mucho más fácil debido a la comprensión de los comandos.

Grace-Hopper-ordenador-1920

Fue especialmente diseñado para aplicaciones económicas, es decir, cualquier tipo de aplicación que tenga que procesar y calcular montos monetarios. Por lo tanto, manejar diferentes tipos de datos de gran volumen es una de las especialidades de COBOL.

tarjeta-perforada-lenguajes-antiguos

En ese momento, el espacio de almacenamiento estaba disponible de ninguna manera en las cantidades como lo es hoy. Por ello al inicio los programas en COBOL tenían un formato tipo tarjeta perforada, porque las tarjetas perforadas eran el medio de entrada más importante en el momento en que se desarrolló el lenguaje (no había diskettes).

 

Características de COBOL

Es muy probable que quiénes lean este artículo ya estén familiarizados con otros lenguajes mas modernos y probablemente van calificar querer valorar el COBOL desde la experiencia con lenguajes actuales.

COBOL fue diseñado para aplicaciones comerciales relacionados con el ámbito financiero, la defensa, el dominio, etc. pudiendo manejar grandes volúmenes de datos en aquella época por su avanzada capacidad de tratamiento de archivos.

Ahora viéndolo desde desde el punto de vista del programador moderno:

  • No hay llamadas de función. Modern COBOL tiene algunas funciones integradas, pero es una tarea seria escribir sus propias funciones.
  • Sin verificación de tipo para llamadas de subrutina. Puede pasar (o no pasar) cualquier cosa cuando se llama a una subrutina, la subrutina llamada supone que tiene los parámetros correctos y no hay forma de detectar parámetros faltantes o no válidos.
  • No hay bibliotecas. No cero, cero. No hay bibliotecas estándar, no hay bibliotecas generalizadas y fácilmente disponibles. Al final, siempre codifica las tareas de Commomplace a mano.
  • Todo se implementa como una palabra clave. Dado que los autores del lenguaje no tienen el concepto de una biblioteca, cada nueva característica se implementa con nuevas palabras clave.
  • Una desventaja de Cobol es el alto esfuerzo de escritura durante la programación.

Aspectos de COBOL que lo hacen superior a otros lenguajes:

  • Estructuras de datos. COBOL tiene una sintaxis precisa y flexible para definir estructuras de datos complejas y tipos de datos extraños.
  • Aritmética decimal. Proporciona soporte nativo para aritmética decimal, es decir, aritmética como la entienden los contadores, con el redondeo correcto, etc.
  • Integración con DB2, CICS, etc. Esto solo se aplica al COBOL de mainframe de IBM (probablemente la mayor parte de COBOL que aún se está ejecutando en la actualidad). Sin embargo, la integración con DB2, CICS y otros entornos de mainframe hace que sea más fácil codificar objetos como entornos protegidos por bases de datos, servicios web que en cualquier otro entorno.
  • Manejo de pantalla. La operación de pantalla estándar implementada en AS/400 y MicroFocus Cobol es excelente.
  • Rendimiento. Los compiladores de COBOL han producido archivos ejecutables muy potentes durante muchos años. Solo Native C y Native Assembler vencieron a COBOL en un mainframe de IBM.

Sobrevivirán las Cucarachas y el COBOL

Dado que el lenguaje de programación estuvo orientado consistentemente a los requisitos comerciales desde el principio, el software escrito en COBOL se extendió rápidamente. En 1970 era el lenguaje de programación más utilizado en el mundo.

COBOL cubrió las necesidades que ningún otro lenguaje de programación existente podría cubrir inicialmente. Durante más de una década, COBOL fue el líder indiscutible en negocios y finanzas: el lenguaje de programación más utilizado, C recién apareció en 1972.

Este lenguaje de programación es más antiguo que el disquete, pero sigue siendo indispensable para muchas aplicaciones comerciales. La vejez del lenguaje trae consigo muchos problemas, especialmente cuando se trata de modernización y transformación digital. A pesar de ello según la empresa de consultoría COBOL Cowboys , en 2016 todavía se usaban 200 mil millones de líneas de código COBOL, el 90% de todas las compañías Fortune 500 continúan utilizando el código COBOL. Y eso no cambiará pronto: según Que Mangus de Micro Focus , el 70% de todos los sistemas de procesamiento de transacciones todavía están construidos con COBOL.

La mayoría de las personas no saben que su vida cotidiana depende de la tecnología de hace 60 años. Ya sea una transacción en un cajero automático, reservar un viaje o presentar una reclamación de seguro, todos interactuamos entre nosotros de alguna manera todos los días Sistemas basados ​​en COBOL, y lo seguirán haciendo en el futuro previsible.

 

¿Para qué se sigue usando hoy?

El lenguaje se hizo particularmente popular entre bancos, compañías de seguros e instituciones de pensiones, pero también en la administración y la industria. Todavía se usa en todas estas áreas hoy en día. Esto se debe, entre otras cosas, al hecho de que hay grandes cantidades de software que se han escrito en COBOL, algunos de ellos durante más de 20, 30 o 40 años.

Una encuesta de REUTERS de 2017 encontró que el 43% de todos los sistemas bancarios se basan en COBOL. El 80% de todas las transacciones bancarias interpersonales se basan de una forma u otra en el código COBOL; en el caso de los cajeros automáticos, el 95%.

En la actualidad, muchas compañías usan software que tiene una antigüedad de décadas. Muchas aplicaciones pueden haber sido escritas en lenguajes más modernos, pero se basan en sistemas host que alguna vez se crearon en COBOL. Los usuarios trabajan con nuevas interfaces gráficas, pero estas solo forman una interfaz moderna para la arquitectura antigua.

Del mainframe a la nube

El miedo a perder la compatibilidad con el código anterior y, por lo tanto, promover nuevos y costosos desarrollos de software a menudo ralentizó los esfuerzos para modernizarse.  Con los años, han aparecido varios estándares modernos de COBOL como COBOL-74, COBOL-85 o, más recientemente, COBOL ISO / IEC 1989: 2014. Esto demuestra claramente la longevidad y la relevancia continua de COBOL.

Como se sabe, la nube es indispensable para la transformación digital, por lo que muchas empresas se encuentran actualmente en medio de la implementación de una estrategia en la nube. La computación en la nube ha comenzado a liberar a los equipos de TI de mucho trabajo y a liberarlos de la administración de hardware molesto. ¿Qué podría ser más molesto que un mainframe? ¿Y más caro? Solo por razones de costos, los usuarios de COBOL están entrecerrando los ojos para encontrar formas de poner sus sistemas mainframe fuera del viejo hierro.

Gracias a las máquinas virtuales, ahora cada vez hay más contenedores donde se suben las aplicaciones heredadas y sus cargas de trabajo a una plataforma de nube privada. Los programas en Java pueden pasar parámetros a COBOL y recuperar los resultados.

Los especialistas tienen un dilema especial

La TI corporativa está atrapada en un cambio constante: micro-servicios y contenedores, lenguajes de programación como Python, R y Ruby, blockchains, inteligencia artificial (AI) y una moneda ominosa de Facebook están agitando la escena. Pero siempre queda una cosa: COBOL.

Según el índice Tiobe actual (2020), COBOL ocupa el puesto 26 en la distribución de lenguajes de programación más utilizados en todo el mundo con un estimado de 0.48% del código existente en el mundo; a fines de 2016 todavía estaba en el lugar 20 con poco menos del 1%.

Un estudio de Micro Focus encontró que de 119 universidades estudiadas en todo el mundo, solo el 27% todavía tiene el lenguaje de programación en su plan de estudios.

¿COBOL se quedará con nosotros?

Parece que el lenguaje de programación de 61 años se está consolidando prácticamente para siempre. Deshacerse de ellos desde el mainframe y desglosarlos en funciones, micro-servicios y contenedores y reutilizarlos los hace adecuados para TI moderna nuevamente. Y dado que la información y los datos registrados en COBOL son esenciales, probablemente también signifique en el 100 aniversario del lenguaje: COBOL, un lenguaje de programación que sobrevivirá a todos nosotros.

 

Deja un comentario

Do NOT follow this link or you will be banned from the site!