COBOL no ha muerto

En un artículo aparecido en el portal Dr. Dobb’s, Michael Swaine trata de convencernos de que COBOL (COmmon Business-Oriented Language) sería uno de los lenguajes que tendríamos que aprender para volvernos más "empleables". En su largo artículo donde habla sobre las ventajas, longevidad y amplio uso del COBOL, básicamente dice que con la adición de la programación orientada a objetos, COBOL es una buena herramienta para hacer SOA, haber afirmado algo como eso, o sencillamente deslizar ese tipo de ideas puede tener dos explicaciones, o uno estuvo borracho cuando lo escribió, o recibió dinero por hacerlo.

Swaine dice de que hay 240 mil millones de líneas de programas escritos en COBOL que deben ser mantenidas y que es más fácil darles mantenimiento que portarlas a otro lenguaje, además incluye un dato importante, que la gran mayoría de estas líneas corren en aplicaciones desarrolladas en y para el sector financiero, pone el caso específico de Merril Lynch quien dice que el 70% de sus aplicaciones corren sobre COBOL. Bueno con sólo la mención del hecho anterior entiendo porque hay todo este completo desastre en el sector financiero en estos días.

Bromas aparte, no hay nada de malo en que una tecnología se vuelva obsoleta y sea reemplazada, el ciclo de la vida es nacimiento, crecimiento, madurez, reproducción, envejecimiento y muerte. Ocurre con todo organismo sano, aquello que no sigue ese ciclo sencillamente es una perversión, un cáncer. Cada célula de nuestro cuerpo cumple su ciclo de vida y es reemplazada, las que se recisten ha seguir ese ciclo se transforman en cáncer y ya no desempeñan su función aportando al conjunto, sino que se convierten en un parásito devorando el aporte de las otras células sanas que cumplen su función. Hace 40 años surgieron tres lenguajes padres por llamarlos de algún modo, FORTRAN (que dió origen a los lenguajes de programación imperativos), LISP (que dió origen a la programación funcional) y COBOL que no ha dado origen a nada más y cual Cronos moderno ha deborado a todos sus hijos.

COBOL ha crecido de una manera tan hipertrófica, incorporando nuevas tecnologías a su vieja y estricta sintaxis, que las empresas que lo usan, viven para mantenerlo, en lugar de que COBOL sea una herramienta para potenciar la estrategia de esa empresa. Casos como el problema del estado de California que no podía hacer un simple cambio en la planilla de sus trabajadores (leer "Atados al pasado" para más información) es una clara muestra de que la longevidad de COBOL no debe ser celebrada como un logro del lenguaje, sino temida como un síntoma de cáncer.

Una de las métricas que más les gusta mostrar a los defesores de COBOL es el número de líneas del lenguaje que están en uso actualmente, pero hay que reflexionar sobre la calidad y no sólo la cantidad, Abraham Licoln dijo: "No es cuántos años has vivido, sino cuánta vida hay en tus años". El abundante número de líneas de código en COBOL tiene explicaciones muy simples, en primer lugar COBOL es un lenguaje que trata de copiar la verbalidad del idioma inglés, por lo tanto es muy protocolar, es decir para hacer lo mismo que haríamos con un puñado de líneas PHP, Python o Java, COBOL necesita varias páginas de código. El segundo factor que contribuye a esta abundancia de código en ejecución es que cada institución financiera desarrolla su propia aplicación, es decir cada banco o financiera intenta inventar por ellos mismos la rueda.

Además COBOL representa una corriente de pensamiento que sabemos es ineficiente, Google nos ha probado que un algoritmo sencillo, pero que accede a una gran cantidad de datos produce mucha mejor calidad de información que un algoritmo sofisticado accediendo sobre un reducido número de datos. La gram mayoría de programas COBOL manejan datos que son miles de veces inferiores en cantidad a los que manejan las aplicaciones más modernas. Los cientos de millones de PCs en el mundo corriendo aplicaciones sobre lenguajes de programación más modernos manipulan mucha más data que los programas COBOL por unidad de tiempo.

Pero por qué no eliminar a COBOL completamente entonces, la respuesta está en sus orígenes, mientras la gran mayoría de lenguajes de programación han sido desarrollados por programadores para programadores y han reflejado los cambios en los paradigmas de la programación, COBOL fue un lenguaje creado por gerentes, que querían de vez en cuándo controlar que estaban haciendo sus programadores, lo cuál era una buena idea cuándo las computadoras simples y los sistemas no eran muy complejos, pero es en nuestros días esta deformidad genética en el leguaje que ya no produce ningun beneficio, ya no hay ningun gerente que quiera leer un programa COBOL, pero tampoco hay ninguno con suficiente honestidad para aceptar que se cometió un error y corregirlo, poque si lo hubiera ocurrirían dos cosas, una que COBOL hace tiempo que no estaría en uso y la segunda es que no estaríamos en medio de toda esta crisis financiera.

3 comentarios en «COBOL no ha muerto»

  1. Al leer esto me doy cuenta de que no tienes ni idea de la programación en COBOL, no has visto nunca una linea de código en este lenguaje y no tienes ni idea de la forma de trabajar con el.
    El COBOL es uno de los lenguajes mas robustos y fiables en cuanto a tratamiento masivo de datos sobre todo datos financieros, muy bien implementado para utilizarse con bases de datos como SQL y DL/1 y con gestores transaccionales como CICS e IMS, por eso se sigue manteniendo y no por el número de lineas de código.
    Pero no sólo se mantiene sino que anualmente se crean millones de linea de código nuevas en COBOL.
    He programado en COBOL, C y python y te digo que ninguno tiene nada que ver el uno con el otro, estais obsesionados con que los nuevos lenguales han de acabar con los antiguos en vez de preocuparos por su funcionalidad. Que un lenguaje sea antiguo o esté obsoleto, que su paradigma no sea el mas utilizado actualmetente, etc…. no indica para nada que no sea útil.

    A ver si no hacemos juicios de valor tan ligeros y poco meditados.

    Un saludo.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.