Cobol, algo más de 50 años

Con más de cincuenta años de vida, el lenguaje COBOL (acrónimo de COmmon Business -Oriented Language, Lenguaje Común Orientado a Negocios) se muestra más vital que nunca y con un inmenso futuro por delante. Creado en 1959, en su desarrollo participó la comisión CODASYL, compuesta por fabricantes de ordenadores, usuarios y el Departamento de Defensa de Estados Unidos. El objetivo del equipo era crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión. El éxito del resultado lo confirma su actual vigencia.

Los trabajos comenzaron en mayo de 1959 y en poco más de seis meses se completó la definición del lenguaje, inspirado en el Flow-Matic de Grace Hopper y el IBM COMTRAN de Bob Bemer, ambos miembros de la comisión. La excelente respuesta lograda entre los primeros usuarios contribuyó a la rápida evolución del lenguaje, que se revisó en el 1961-1965 para añadirle nuevas funcionalidades. En 1968 salió la primera versión ANSI del lenguaje, revisada posteriormente en 1974 (COBOL ANS-74), 1985 (COBOL ANS-85, ampliado en 1989 con funciones matemáticas, finalizando el estándar actual más usado, conocido como COBOL-ANSI), y en 2002 (COBOL ANS-2002). Desde el año 2007 se viene preparando una nueva revisión del lenguaje. Además, existe una versión conocida como COBOL ENTERPRISE, actualizada regularmente y lanzada en 1991, usada generalmente en sistemas Host.

COBOL destaca por unas excelentes capacidades de auto documentación, una buena gestión de archivos y una excelente gestión de los tipos de datos para la época, a través de la conocida sentencia PICTURE para la definición de campos estructurados. Para evitar errores de redondeo en los cálculos que se producen al convertir los números a binario y que son inaceptables en temas comerciales, COBOL puede emplear y emplea por defecto números en base diez. Para facilitar la creación de programas en COBOL, la sintaxis del mismo fue creada de forma que fuese parecida al idioma inglés, evitando el uso de símbolos que se impusieron en lenguajes de programación posteriores.
Durante los últimos años, ningún lenguaje ha representado mejor la esencia de la informática que COBOL. Disponible en la mayoría de plataformas de programación, COBOL es uno de los lenguajes de base con mayor aceptación en el mundo. Además, ha sido utilizado para todo tipo de desarrollos, desde en la redacción de un informe hasta en las transacciones fundamentales para la mejora de paquetes de software. Sin embargo, a pesar de estar instalado en la mayoría de las empresas, COBOL hoy está acorralado tanto por la desaparición vegetativa de los especialistas como por el uso de otros lenguajes de programación más de moda.

A comienzos de los ochenta COBOL empezó a quedarse anticuado frente a los nuevos paradigmas de programación y a los lenguajes que los implementaban. En la revisión de 1985 se solucionó, incorporando a COBOL variables locales, recursividad, reserva de memoria dinámica y programación estructurada. En la revisión de 2002 se le añadió orientación a objetos, aunque desde la revisión de 1974 se podía crear un entorno de trabajo similar a la orientación a objetos, y un método de generación de pantallas gráficas estandarizado. Antes de la inclusión de las nuevas características en el estándar oficial, muchos fabricantes de compiladores las añadían de forma no estándar. En la actualidad este proceso se está viendo con la integración de COBOL con Internet. Existen varios compiladores que permiten emplear COBOL como lenguaje de scripting y de servicio web. También existen compiladores que permiten generar código COBOL para la plataforma .NET y EJB.
Frente a la creencia de que el COBOL está en desuso, la realidad es que casi todos los sistemas que requieren gran capacidad de procesamiento por lotes (Batch), tanto las entidades bancarias como otras grandes empresas con sistemas mainframes utilizan COBOL. Una circunstancia que permite garantizar la compatibilidad de los sistemas antiguos con los más modernos, además de la seguridad de contar con un lenguaje es perfectamente estable y probado. Según un informe de Gartner Group de 2005, el 75% de los datos generados por negocios son procesados por programas creados en COBOL, y en otro informe de 1997 estima que el 80% de los 300.000 millones de líneas de código existentes están creados en COBOL, escribiéndose 5.000 millones de líneas nuevas de COBOL cada año. Así, hoy por hoy, la programación en COBOL es uno de los negocios más rentables del mundo de la informática.

El futuro
Esta vigencia y funcionalidad tiene su reverso: la mayoría de los especialistas en Cobol se ha jubilado, lo que no significa que haya desaparecido la demanda. El conocimiento y la experiencia de las grandes empresas esta soportado por COBOL, pero, paradójicamente, cada vez hay menos especialistas en este lenguaje. Con el retiro de los "baby boomers", durante la próxima década, el uso de herramientas y habilidades de desarrollo en COBOL irá decayendo y los nuevos programadores formados en COBOL tendrán una falta de profundidad de conocimientos en el área de los negocios, comparados con sus predecesores.

Además de fomentar la formación y el expertise de las nuevas generaciones en este lenguaje, todavía estamos a tiempo de aprovechar el conocimiento de estos especialistas, antes de su jubilación, para reestructurar, eliminar errores y documentar los sistemas que conocen para permitir que los nuevos programadores puedan ser productivos sin depender de las décadas de experiencia de los que se retiran. Herramientas como Relativity, SEEC, Micro Focus, ASG e IBM pueden ayudar en este esfuerzo.

A pesar de ser percibido por el mercado como algo "desfasado", COBOL es un lenguaje de alto rendimiento. Las compañías que se planteen el cambio de lenguajes, también necesitarán replantear las arquitecturas de sus aplicaciones. Las migraciones hacia arquitecturas totalmente distribuidas requieren cambios en todo el proceso para reducir el impacto de los cambios en el rendimiento de los perfiles.

Para Gartner el traslado de las implementaciones COBOL hacia paquetes o hacia diferentes lenguajes es una decisión a largo plazo que entraña un alto riesgo. Además, para la traducción o la reimplementación de grandes y complejos procesos de negocio, las organizaciones necesitarán efectuar cambios en sus plantillas y en sus habilidades, y generalmente también tendrán que adaptar las capacidades operacionales de la nueva plataforma. Hoy por hoy, la solución pasa por prepararse para unas dinámicas de mercado cambiantes que podrían incrementar el coste y el riesgo de mantener el portfolio COBOL, fomentar una nueva generación de programadores expertos en COBOL y considerar algunas de las alternativas que ofrece COBOL para soluciones de migración que permitan un ahorro de costes y mayor flexibilidad.

Por Ricardo Montes, Director de Marketing y Comunicación de Micro Focus para Iberia y Latam.

2 comentarios:

  1. Enhorabuena por tu blog, te intentaré seguir a menudo, esta entrada me ha aclarado muchas cosas.
    He intentado estudiar Cobol este verano por mi cuenta pero no se ni por donde empezar xD.
    Sería genial que subieras algun tutorial.
    Un saludo desde Meri :P

    ResponderEliminar
  2. Bienvenido Boneheart, esta primavera he impartido un curso de COBOL, y la verdad es que es un lenguaje fácil y potente, aunque un poco complicado de programar.

    Colgaré los tutoriales y ejemplos en breve. También me he dado una vuelta por tu blog http://boneheart.wordpress.com/

    Gracias.

    ResponderEliminar

Gracias por comentar en mi blog. Saludos.