COBOL es el amianto de los lenguajes de programación

Temprano en el Con la pandemia de Covid-19, el gobernador de Nueva Jersey hizo una admisión inusual: se había quedado sin desarrolladores COBOL. Los sistemas de seguro de desempleo del estado fueron escritos en el lenguaje de programación de hace 60 años y necesitaban ser actualizados para manejar cientos de miles de solicitudes. El problema era que pocos empleados del estado sabían cómo hacerlo. Y la crisis fue más allá de Nueva Jersey, uno de los muchos estados que dependían de estos sistemas difíciles de manejar. Según un cálculo aproximado, las ineficiencias de COBOL le costaron al PIB estadounidense 105 mil millones de dólares en 2020.

Se podría pensar que Nueva Jersey habría reemplazado su sistema después de esto, y que Covid fue el último suspiro de COBOL. No exactamente. El nuevo sistema de desempleo del estado vino con una serie de mejoras en la calidad de vida, pero en el fondo, todavía era posible gracias a una computadora central que ejecutaba el lenguaje antiguo.

COBOL, abreviatura de Common Business-Oriented Language, es el lenguaje informático más adoptado en la historia. De los 300 mil millones de líneas de código que se habían escrito hasta el año 2000, el 80 por ciento de ellas estaban en COBOL. Todavía se usa ampliamente y es compatible con una gran cantidad de sistemas gubernamentales, como registros de vehículos motorizados y seguro de desempleo; en un día cualquiera, puede manejar transacciones financieras por valor del orden de 3 billones de dólares. Pienso en COBOL como una especie de asbesto digital, casi omnipresente alguna vez y ahora increíblemente y peligrosamente difícil de eliminar.

COBOL fue propuesto por primera vez en 1959 por un comité que incluía a la mayor parte de la industria informática estadounidense (incluida Grace Hopper). Pidió “especificaciones para un lenguaje comercial común para computadoras digitales automáticas” para resolver un problema creciente: el costo de la programación. Los programas se escribían a medida para máquinas específicas, y si querías ejecutarlos en otra cosa, eso significaba una reescritura casi total. El comité se acercó al Departamento de Defensa, que aceptó felizmente el proyecto.

El diseño de COBOL lo distingue de otros lenguajes tanto entonces como ahora. Estaba destinado a estar escrito en un inglés sencillo para que cualquiera, incluso los no programadores, pudiera utilizarlo; La notación matemática simbólica se añadió sólo después de un considerable debate. La mayoría de las versiones de COBOL permiten el uso de cientos de palabras (Java permite solo 68), incluidas «es», «entonces» y «para», para que sea más fácil escribir. Algunos incluso han dicho que COBOL estaba destinado a reemplazar a los programadores de computadoras, que en la década de 1960 ocupaban un lugar raro en muchas empresas. Eran maestros de una tecnología que la mayoría de la gente apenas podía comprender. Los diseñadores de COBOL también esperaban que generara su propia documentación, ahorrando tiempo a los desarrolladores y facilitando la mantener en el largo plazo.

Pero, ¿qué significaba siquiera ser legible? Los programas no son libros ni artículos; son conjuntos condicionales de instrucciones. Si bien COBOL podía resumir la complejidad de una sola línea de código en algo que cualquiera pudiera entender, esa distinción se desmoronaba en programas que abarcaban miles de líneas. (Es como un manual de ensamblaje de Ikea: cualquier paso dado es fácil, pero de alguna manera la cosa aún no encaja). Además, COBOL se implementó con una lógica que llegó a ser despreciada: la declaración GO TO, un mecanismo de ramificación incondicional que te enviaba disparado de una sección de un programa a otra. El resultado fue un “código espagueti”, como les gusta decir a los desarrolladores, que hacía que la autodocumentación fuera irrelevante.

Muchos informáticos tuvieron problemas con COBOL desde el principio. Edsger Dijkstra lo detestaba y decía: «El uso de COBOL paraliza la mente; por lo tanto, su enseñanza debería considerarse un delito penal». Dijkstra también odiaba la declaración GO TO, argumentando que hacía que los programas fueran casi imposibles de entender. Había un cierto grado de esnobismo real: a menudo se menospreciaba a COBOL como un lenguaje puramente utilitario destinado a resolver problemas aburridos.

Jean Sammet, uno de los diseñadores originales, lo vio de otra manera: el lenguaje simplemente tenía la complicada tarea de representar cosas complicadas, como la seguridad social. O como escribió otro defensor: «Lamentablemente, hay demasiados programas de aplicaciones empresariales escritos por programadores que nunca han tenido el beneficio de una COBOL estructurada bien enseñada». De hecho, un buen COBOL se autodocumentaba, pero mucho dependía del programador específico. Fred Gruenberger, un matemático de Rand Corporation, lo expresó de esta manera: «COBOL, en manos de un maestro, es una hermosa herramienta, una herramienta muy poderosa. COBOL, como será manejado por un empleado de bajo nivel en algún lugar, será un desastre miserable».

We use cookies in order to give you the best possible experience on our website. By continuing to use this site, you agree to our use of cookies.
Accept