A principios de Durante 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 un lenguaje de programación de hace 60 años y necesitaban ser actualizados para manejar cientos de miles de reclamaciones. El problema era que pocos funcionarios estatales 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 cuestan al PIB de EE. UU. 105 mil millones de dólares en 2020.
Se podría pensar que Nueva Jersey habría reemplazado su sistema después de eso, y que Covid fue el último suspiro de COBOL. No exactamente. El nuevo sistema de desempleo del estado trajo una serie de mejoras en la calidad de vida, pero al final todavía fue 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 escritas en el año 2000, el 80% de ellas estaban en COBOL. Todavía se utiliza ampliamente y respalda una gran cantidad de sistemas gubernamentales, como el registro de vehículos de motor y el seguro de desempleo; en un día cualquiera, puede manejar algo del orden de Vale 3 billones de dólares de transacciones financieras. Pienso en COBOL como una especie de amianto digital, alguna vez casi omnipresente y ahora increíblemente y peligrosamente difícil de eliminar.
COBOL fue propuesto por primera vez en 1959 por un comité formado por 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 de entonces y de ahora. Fue diseñado para escribirse en un inglés sencillo, de modo que cualquiera, incluso los que no sean programadores, pudiera usarlo; 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 sólo 68), incluidas “es”, “entonces” y “para”, para facilitar la escritura. Algunos incluso han dicho que COBOL estaba destinado a reemplazar a los programadores informáticos, que en la década de 1960 ocupaban un lugar poco común en muchas empresas.
Pero ¿qué significa 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, esta distinción se desmoronaba en programas que abarcaban miles de líneas. (Es como un manual de ensamblaje de Ikea: cualquier paso es fácil, pero de alguna manera todavía no funciona). Además, COBOL se implementó con una lógica que había llegado a ser despreciada: la declaración GO TO, un mecanismo de ramificación incondicional que te hacía saltar 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, enseñarlo debería considerarse un delito penal”. Dijkstra también odió la declaración GO TO, argumentando que hacía que los programas fueran casi imposibles de entender. Había cierto esnobismo real: a menudo se descartaba a COBOL como un lenguaje puramente utilitario destinado a resolver problemas aburridos.
Jean Sammet, uno de los diseñadores originales, vio las cosas 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, existen muchos programas de aplicaciones empresariales escritos por programadores que nunca han tenido el beneficio de un COBOL estructurado y bien enseñado”. De hecho, un buen COBOL se autodocumentaba, pero dependía mucho 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, cuando lo maneja un mal empleado en algún lugar, será un desastre miserable”.













