¿Qué es COBOL y por qué tantas instituciones confían en él?

El gobernador de Nueva Jersey COBOL recientemente mencionado, un lenguaje de programación de 60 años. ¿Qué es exactamente? ¿Y por qué sigue siendo el eje del mundo financiero, a pesar de que pocas personas todavía saben cómo utilizarlo?

Los orígenes de COBOL

Grace Hopper fue un fenómeno. Obtuvo un doctorado en matemáticas en Yale, fue profesora en Vassar y dejó la Marina de los Estados Unidos con el rango de contralmirante. Sus contribuciones al campo de la computación pueden juzgarse por el número de fundamentos y programas que han sido creado en su memoria. los Centro Nacional de Computación Científica de Investigación en Energía llamado su Cray XE6 superordenador después de ella. La Marina también nombró a su destructor de misiles guiados, el USS Hopper, en su honor. El lema del barco, «Aude et Effice» («Atrévete y haz») bien podría haber sido acuñado con Hopper en mente.

Impulsado por crear un lenguaje de programación más cercano al inglés de lo que entienden las computadoras de código máquina, Hopper desarrolló el primer compilador. Esto abrió la puerta a los primeros lenguajes compilados, como FLOW-MATIC. Esto le valió un puesto en la Conferencia / Comité de Idiomas de Sistemas de Datos (CODASYL) de 1959.

También jugó un papel decisivo en la especificación y el desarrollo de la Lenguaje común orientado a los negocios (COBOL). La primera reunión tuvo lugar el 23 de junio de 1959 y su informe y especificación del lenguaje COBOL seguido en abril de 1960.

COBOL era radical

COBOL contenía algunos conceptos innovadores. Podría decirse que el más importante de ellos fue la capacidad de ejecutarse en hardware producido por diferentes fabricantes, lo que no tenía precedentes en ese momento.

El lenguaje fue elaborado y proporcionó un vocabulario cercano al inglés para que los programadores trabajaran. Fue diseñado para manejar grandes volúmenes de datos y para ser excepcionalmente matemáticamente preciso.

Su vocabulario de palabras reservadas (las palabras que componen el lenguaje) se acerca a las 400. Un programador encadena estas palabras reservadas juntas para que tengan sentido sintáctico y creen un programa.

Cualquier programador que esté familiarizado con otros lenguajes le dirá que 400 es una cantidad increíble de palabras reservadas. A modo de comparación, el Lenguaje C tiene 32, y Pitón tiene 33.

Otra peculiaridad de COBOL es su estricto requisito de que ciertas líneas de programa comiencen en ciertas columnas. Esta es una resaca de los días de tarjetas perforadas. Hoy en día, los programadores tienen más libertad al formatear COBOL y ya no tienen que escribir todo en mayúsculas. Esto hace que trabajar con él sea menos prescriptivo y llamativo, pero sigue siendo una creación de su tiempo, como se muestra a continuación:

IDENTIFICATION DIVISION.
      PROGRAM-ID. Hello-World.
      DATA DIVISION.
      FILE SECTION.
      WORKING-STORAGE SECTION.
      PROCEDURE DIVISION.
      MAIN-PROCEDURE.
           DISPLAY "Hello world, from kirukiru.es!"
           STOP RUN.
      END PROGRAM Hello-World.

COBOL es un ÉXITO

Una mujer que usa un cajero automático al aire libre.La mayoría de las transacciones en cajeros automáticos todavía utilizan COBOL.

Por torpe que parezca hoy, COBOL fue revolucionario cuando se lanzó. Encontró el favor del sector financiero, el gobierno federal y las principales corporaciones y organizaciones. Esto se debió a su escalabilidad, capacidades de manejo de lotes y precisión matemática. Se instaló en mainframes de todo el mundo, echó raíces y floreció. Como una mala hierba rebelde, simplemente no morirá.

Nuestra dependencia de sistemas que todavía funcionan con COBOL es asombrosa. UN informe de Reuters en 2017 compartió las siguientes estadísticas asombrosas:

Hay 220 mil millones de líneas de código COBOL todavía en uso en la actualidad.
COBOL es la base del 43 por ciento de todos los sistemas bancarios.
Los sistemas impulsados ​​por COBOL manejan $ 3 billones de comercio diario.
COBOL maneja el 95 por ciento de todos los pases de tarjetas de cajeros automáticos.
COBOL hace posible el 80 por ciento de todas las transacciones con tarjeta de crédito en persona.

Como puede ver, es difícil pasar un día sin usar un sistema que depende de COBOL. Las cuentas bancarias y los servicios de compensación de cheques, así como las infraestructuras de cara al público, como los cajeros automáticos y los semáforos, todavía funcionan con este código escrito hace décadas.

COBOL es un problema

Los programadores que conocen COBOL están jubilados, pensando en jubilarse o muertos. Estamos perdiendo constantemente a las personas que tienen las habilidades para mantener estos sistemas vitales en funcionamiento. Los programadores nuevos y más jóvenes no conocen COBOL. La mayoría tampoco quiere trabajar en sistemas para los que tenga que mantener un código antiguo o escribir un código nuevo.

Este es un problema tal que Bill Hinshaw, un veterano de COBOL, fue obligado a dejar su retiro para fundar COBOL Cowboys. Esta firma de consultoría privada atiende a clientes corporativos desesperados que no pueden encontrar codificadores conocedores de COBOL en ninguna parte. Los «jóvenes» de COBOL Cowboys (cuyo lema es «No es nuestro primer rodeo») tienen más de 50 años. Creen que el 90 por ciento de los sistemas empresariales de Fortune 500 funcionan con COBOL.

Por supuesto, las empresas privadas, las corporaciones y los bancos no son los únicos que necesitan procesar cantidades gigantescas de datos financieros. Los servicios del gobierno federal, provincial y local tienen los mismos requisitos. Como todos los demás, usan mainframes y COBOL para esto.

El terrible impacto de la pandemia de coronavirus ha provocado angustias, muertes e incertidumbre económica para los propietarios de negocios, empleados y autónomos. La gran cantidad de personal con licencia y despido en Nueva Jersey gobernador para apelar a los programadores COBOL experimentados para acudir en ayuda de los envejecidos sistemas de back-end del estado. Estos se esfuerzan por hacer frente a la 326.000 nuevos registros.

los Proyecto de mainframe abierto está ejecutando una iniciativa basada en voluntarios para ayudar. Si cree que podría ayudar, estarán encantados de saber de usted.

Nueva Jersey no está sola en esta situación. Más de 10 millones de personas se han registrado para el desempleo y esa cifra está aumentando. Connecticut está luchando por procesar un cuarto de millón de nuevos registros en los sistemas estatales de 40 años.

Este es un problema generalizado y profundamente arraigado. UN Informe de 2016 de la Oficina de Responsabilidad del Gobierno enumeró los sistemas COBOL que se ejecutan en mainframes de hasta 53 años de antigüedad. Estos incluyen sistemas utilizados para procesar datos relacionados con el Departamento de Asuntos de Veteranos, el Departamento de Justicia y la Administración del Seguro Social.

¿Por qué no migrar y actualizar, como ayer?

Actualizar estos sistemas heredados no es tan simple como parece. Los sistemas son puntos de apoyo vitales, 24 horas al día, 7 días a la semana, sobre los que pivotan los mundos financiero, gubernamental y empresarial. El código es antiguo, tiene varias capas y, a menudo, está mal o completamente indocumentado. También tiene que funcionar, todo el tiempo. La perspectiva se ha comparado con quitar las hélices de un avión y tratar de adaptarlo a motores a reacción, mientras está en el aire.

Dejando a un lado el riesgo, el argumento económico para migrar a sistemas modernos también es difícil. El dinero que se ha invertido en mantener operativos estos mainframes y aplicaciones COBOL es asombroso. ¿Deberían las instituciones tirarlo todo y empezar de nuevo mientras el código COBOL aún está funcionando y es funcional? Ese es un lanzamiento difícil para una tabla que probablemente no tenga una inclinación técnica especial. Una migración COBOL no será barata ni rápida.

“Acabo de realizar una conversión para pasar de COBOL a Java”, dijo Hinshaw. «Les ha llevado cuatro años, y todavía no han terminado. «

Cuando el Commonwealth Bank of Australia reemplazó su plataforma central COBOL en 2012, tomó cinco años a un costo final de $ 749,9 millones ($ 1 mil millones australianos).

Y ahí es cuando todo va según el plan. Banco del Reino Unido, TSB, se vio obligado a migrar de un sistema basado en COBOL en 2018 debido a una compra. No salió bien. Debido a que el banco no pudo operar durante días, el costo de la migración terminó siendo de 330 millones de libras. Eso fue además del costo presupuestado para el trabajo de ingeniería para la migración real. TSB también perdió 49,1 millones de libras por fraude financiero mientras sus sistemas se derrumbaban.

La compensación del cliente superó los 125 millones de libras y el banco tuvo que gastar 122 millones de libras en la contratación de nuevo personal para tratar los 204.000 casos de quejas de los clientes. El director ejecutivo renunció y la compañía todavía está limpiando los daños dos años después del evento.

El dilema de COBOL

Las cosas no pueden permanecer como están, pero la perspectiva de hacer algo al respecto no es nada atractiva. Sin embargo, la única forma en que las cosas van a mejorar es realizar migraciones controladas y cuidadosas al software y hardware modernos.

Para lograrlo sin interrupciones, pérdida de datos y tiempo de inactividad, se necesitarán conocimientos y dinero modernos, que es el 50 por ciento de la ecuación. La otra mitad es experiencia y tiempo de COBOL. Desafortunadamente, esos son los dos ingredientes que casi nos faltan.

Quizás una nueva raza de vaqueros COBOL llegue a la ciudad.