Martes, 29 de Abril de 2025

John Backus. En 1957 inventó Fortran, el primer lenguaje de programación de alto nivel de la historia

ArgentinaLa Nación, Argentina 2 de noviembre de 2024

John Warner Backus, un muchacho perezoso que se negaba a hacer esfuerzos innecesarios; así que cambió el mundo de la computación de raíz John Backups solía decir que su invento, uno que revolucionaría la computación desde las raíces , era fruto de la pereza

John Warner Backus, un muchacho perezoso que se negaba a hacer esfuerzos innecesarios; así que cambió el mundo de la computación de raíz



John Backups solía decir que su invento, uno que revolucionaría la computación desde las raíces , era fruto de la pereza . No asombra. A fin de cuentas, casi todo fenómeno natural sigue las líneas de menor esfuerzo (desde las conexiones entre nuestras neuronas hasta el curso de los ríos), y, francamente, sería bastante absurdo pensar que la vida se planteara que el esfuerzo por sí tenga algún valor . Ya bastantes problemas se encontró la vida en este planeta para malgastar energía en nombre del sudor y el sufrimiento.

Solo que simplificar lo complicado suele ser, bueno, complicado.

Ningún dinosaurio

Vamos a poner las cosas de forma simple, entonces. John Backus fue un matemático y programador de IBM que en 1957 creó, junto con un pequeño, selecto e incomprendido grupo de expertos en diversas disciplinas, el primer lenguaje de programación de alto nivel . Su nombre es bastante conocido y posiblemente te suene: FORTRAN . Así se escribía originalmente, debido a que las máquinas de la época no tenían minúsculas . Al principio este nombre no convenció a nadie (fue idea de Backus, y sus colegas se le rieron en la cara), pero lo que crearon fue tan exitoso que pronto se convirtió en una de las marcas más valiosas de la industria . Así que de las mayúsculas pasaron por diversos estilos tipográficos ( versalista , por ejemplo); usaremos aquí, ahora que sabemos por qué muchas veces se lo escribe todo en mayúsculas, la más confortable forma Fortran .

El nombre proviene de Formula Translator , y nos llevará un rato descubrir de qué hablaba Backus cuando una mañana llegó a la oficina en la que trabajaban, prácticamente aislados del resto de IBM, y lanzó este nombre largo y difícil de pronunciar. Para entender eso y para entender cómo es posible que hoy, cerca de los 70 años de edad , Fortran siga vigente, tenemos que viajar en el tiempo y ver escenas algo difíciles de digerir.

Un momento. ¿Vigente? ¿No era un dinosaurio ese lenguaje? ¿No tenemos cosas mucho más avanzadas, como Rust o Python ? A no precipitarse, que nos espera una historia fascinante en la que dos ideas del mundo, viejas como el mundo mismo, colisionaron en los orígenes de la informática , y como ocurre siempre, ganó el menor esfuerzo . Claro que Backus y los suyos tuvieron que hacer un esfuerzo mayúsculo para que triunfara el menor esfuerzo. Allá vamos.

En agosto de 1952 IBM demostró frente a algunos de sus clientes (no los que uno esperaría hoy, sino más bien laboratorios y gente de las fuerzas armadas ) una computadora. Se llamaba 701 y dejó pasmados a todos. ¿Por qué? Por su extraordinaria velocidad. Al revés que las que venían usando hasta entonces, la 701 sacaba el resultado de una operación en un pestañeo. Como el futuro llega siempre un poco antes de que uno pueda deshacerse de los prejuicios del presente , la preocupación de los clientes de IBM fue: "¿Cómo vamos a hacer para usar algo tan rápido de forma óptima?" Óptima en este contexto significa "sin tirar plata" . Traducido: como esas máquinas, que se alquilaban por precios astronómicos, eran demasiado rápidas, entonces iban a pasar mucho tiempo ociosas . Kathleen Booth

Hoy es al revés. Cuanto más rápido, mejor. Pero eso es porque tenemos decenas de miles de programas listos para usar ese cómputo rápido y barato. En 1952, no existía ese ecosistema de software y las computadoras debían programarse lenta y trabajosamente, escribiendo código en su propio idioma o en Ensamblador , para cada tarea que la organización decidiera encarar. No había una tienda de apps . Faltaba algo más de medio siglo para eso.

El lenguaje de las máquinas estaba hecho de ceros y unos y era por completo inviable para proyectos complejos. Es lo que se conoce como lenguaje de programación de primera generación o 1GL . Luego, gracias a la genial Kathleen Booth , nació el primer lenguaje de programación de segunda generación (o 2GL), llamado Ensamblador , en 1947 . Pero, en ninguna disciplina los avances son homogéneos. Aunque programar computadoras en Ensamblador era más fácil que hacerlo con ceros y unos, escribir código todavía era un ritual ( "a black art" , diría Backus) oscuro y conocido solo por unos pocos , que debían lidiar con la idiosincrasia de cada máquina, en una época en la que estos colosos se alimentaban con tarjetas perforadas . Paremos un instante la película acá.

Las computadoras eran pocas , enormemente costosas y eran también únicas y a la vez rudimentarias . No había todavía estándares y casi no existían lenguajes de programación, salvo el lenguaje nativo de cada máquina ; mucho menos había un dialecto común .

En los hechos, estaba casi todo por hacerse . No habían nacido ni Unix ni C ni Internet ni Windows ni la computadora personal . Hasta los mainframes estaban en el futuro. El problema es que nadie lo sabía.

Esto es lo genial de nuestra percepción del mundo. O, para ser exacto, de la percepción de la mayoría de nosotros. Creemos que las cosas están bien como están . Es lo normal , no tiene nada de malo y le permite a las sociedades funcionar. Pero nunca falta algún díscolo que piensa que ciertas tareas podrían hacerse más rápido y más fácil . (O, en otro orden de cosas, que la organización de una sociedad en ese momento particular de la historia es horriblemente injusta , como experimentó, entre otras, una de nuestras pioneras, Katherine Johnson ). Dorothy Vaughan, Katherine Johnson y Mary Jackson, pioneras del cómputo que sufrieron el horror segregacionista en Estados Unidos

John Backus pertenecía a esta clase tan especial e indispensable de personas , las que ven que las cosas podrían ser mejores , más justas , más equitativas , más rápidas , más simples , más humanas , más sustentables . En su caso, tras experimentar la pesadilla del lenguaje de máquina con la 701 , decidió que debería haber una forma más sencilla de programar una computadora. Por supuesto, no tenía ni la más remota idea de cómo hacer eso, porque los lenguajes de programación de alto nivel aún no habían nacido . Es un super problema cuando se te ocurren ideas que todavía no existen.

Ese chico falta mucho

John Warner Backu s nació el 3 de diciembre de 1924 en Philadelphia , aunque creció en Delaware . Cuando fue a la secundaria, en Pennsylvania , ya se le notaba lo perezoso. No le fue bien. Pero se anotó para estudiar química en la Universidad de Virginia , No duró demasiado; al año lo habían echado por faltar mucho . Llegó la Segunda Guerra Mundial , lo reclutaron y más tarde llegó al grado de cabo . En el ejército le fue mejor, al punto que lo enviaron a la Universidad de Pittsburgh , becado, para estudiar ingeniería , de donde pasó a hacer una pasantía en Haverford . Allí le detectaron un cáncer óseo en el cráneo , que afortunadamente pudo ser extraído, aunque John pasaría el resto de su vida con una placa de metal en la cabeza (que él mismo iba a rediseñar poco después, con lo que debería atravesar una segunda intervención).

Así que quiso estudiar medicina , pero tampoco le pareció algo entretenido. No asombra que al final descubriera que su vocación era la matemática , que tiende a subyugar con su belleza a las mentes más visionarias. Se graduó en la Universidad de Columbia (la licenciatura en 1949 y el doctorado en 1950 , ambos en matemática) y casi de inmediato entró en IBM . Y conoció la 701 y el círculo rojo que solo programaba según sus reglas y sus verdades reveladas . Backus estaba a punto de detonar todo eso.

La respuesta de Backups para no sufrir las inclemencias de programar la 701 fue un lenguaje llamado Speedcoding . Fue el primer programa de alto nivel creado para una máquina de IBM . Eso fue en 1953 . Ese mismo año le mandó un memo a su jefe planteándole una idea herética . Que su jefe aceptó, porque además de herética tenía sentido. Esa idea era la de inventar una forma más rápida y sencilla de programar computadoras . Pero atención. El desafío no solo era simplificarles la vida a los programadores. El lenguaje de Backus debía además producir código ejecutable (en este caso, técnicamente, código objeto ; es decir, un programa listo para usar) más rápido que sus rivales de la vieja escuela a mano.

Nace Fortran

Para entonces ya había salido la 704 , más rápida todavía, y con más memoria . No se entusiasmen. Estamos hablando de menos de una millonésima parte de la memoria RAM que tiene tu celular . Formó su equipo con personas de diferentes extracciones y se puso a trabajar en esa oficina sin cubículos, con los escritorios pegados unos a otros y donde pasaban largas horas debatiendo ideas; la mayoría terminaba en un punto muerto, pero, poco a poco, Backus y su gente escribieron una de las páginas más fundamentales y disruptivas de la historia de la computación (y, por ende, de la civilización).

Tanto, que todavía hoy el código en Fortran sigue estando por todos lados. El Índice TIOBE , que hace el ránking de las búsquedas de información en Internet sobre los diferentes lenguajes de programación, pone a este veterano de casi 70 años en el puesto 9 . Absolutamente increíble. En una industria donde seis meses cambian todo, seguir vigente tras casi 7 décadas es milagroso. De hecho, Fortran pasó del puesto 10 al 9 en el último año . Probablemente tenga que ver la IA en esto. Fijate.

No vamos a entrar en el detalle fino de la sintaxis de Fortran, pero sigue siendo uno de los lenguajes más concisos y claros , y está fuertemente orientado (e influido por) la matemática y las ciencias en general. ¿Por qué? Ese es el punto. Conferencia de París de 1960, dedicada a ALGOL (un lenguaje de tercera generación nacido en 1958). Arriba, John McCarthy, Friedrich Bauer, Joseph Wegstein. Abajo, John Backus, Peter Naur, Alan Perlis. Junto a Naur, Backus crearía la Notación Backus-Naur, para describir lenguajes formales

En 1957 la regla no era usar computadoras. Unos pocos institutos, organizaciones y empresas usaban unas pocas computadoras para ciertas tareas muy complejas relacionadas con las ciencias. Es decir, no usabas una computadora para chatear o mirar series. Las usabas para calcular trayectorias balísticas , órbitas de naves espaciales , dinámica de fluidos , pronósticos meteorológicos , geofísica , cristalografía , física atómica y ese tipo de cosas. No para el mail, digamos. Faltaban casi 15 años para que naciera el correo electrónico. Este es motivo por el que cuando los Gates y los Jobs propusieron la idea de que cualquiera debería tener una computadora , a fines de la década del ‘70, la cosa sonó a completo disparate. Era equivalente a tener una máquina de rayos X en el vestidor.

En la actualidad, lo que proponía Backus es bastante obvio, pero iba a dejar a un montón de gente sin trabajo (¿les suena?), por lo que encontró una resistencia feroz . Quería que los programadores pudieran concentrarse en escribir el código para resolver el problema en cuestión y no pelearse con los caprichos de la computadora con la que estaban trabajando . Como era matemático y como los problemas con los que trataban las computadoras en esa época eran mayormente científicos y numéricos, se puso a pensar en la sintaxis de la matemática y la lógica, que son a la vez claras , concisas , sin ambigüedades y funcionan en cualquier contexto . Pueden llamar "contexto" a cada modelo de computadora, y estaremos en el camino correcto.

Fortran sentó las bases fundamentales de los lenguajes de tercera generación (o 3GL), que son los que han dado forma a la informática contemporánea . En esa misma línea están desde Cobol hasta C , y casi cualquier otro lenguaje moderno en el que puedan pensar; con el agregado de objetos , hoy hacemos prácticamente todo. Dicho sea a propósito, los lenguajes de cuarta generación se encuentran en una categoría diferente y están orientados, por ejemplo, al manejo de bases de datos, generación de reportes y así.

Fortran incorporó algo más, tremendamente importante. Backus no quería volver a tipear código . Era su meta en la vida. No trabajar innecesariamente . Él lo llamaba pereza. Creo que es simple inteligencia . Así que diseñaron Fortran de tal forma que pudiera usar bibliotecas de código para montones de cosas , pero sobre todo para asuntos científicos. Por eso, este lenguaje sigue siendo usado en supercomputación y en lo que se conoce como computación de alto rendimiento . Como ocurre, en otro nivel, con C y con cualquier lenguaje popular, hay bibliotecas para cientos de cosas científicas y matemáticas; la IA es pura matemática, y de ahí vienesu vínculo con Fortran .

Antes de esta innovación los programadores debían inventar el paraguas cada vez que se sentaban a trabajar con un nuevo proyecto.

Dream Team

El equipo de Backus estaba formado por Sheldon Best, Richard Goldberg , Lois Haibt , Harlan Herrick , Robert Nelson , Roy Nutt , Peter Sheridan , Harold Stern , David Sayre e Irving Ziller , y había abrevado en las ideas de Halcombe Laning y del lógico Emil Post . El primer borrador de Fortran salió en 1954 y el primer manual , en 1956 . Por fin, el primer compilador de Fortran que se probó más rápido que escribir en lenguaje de máquina apareció en 1957 . Fue el año en que los soviéticos pusieron en órbita el Sputnik-1 , lo que derivaría en una crisis política sin precedente en Estados Unidos , crisis que llevaría a la creación, en febrero del año siguiente , de ARPA , donde nacería primero Arpanet y, derivada de ella, Internet . El primer manual de Fortran, de 1957. Nacían los lenguajes de programación que hoy mueven el mundo

Silenciosamente, este grupo incomprendido, muchas veces despreciado ( "los de guardapolvo blanco", los llamaban los programadores de IBM , despectivamente) creó una herramienta para que cualquier persona pudiera programar una computadora. La idea eran tan difícil de asimilar que todavía hoy la clase dirigente sigue mirando el código como algo oscuro que solo unos pocos iniciados pueden entender . Backus pensó de otro modo y creó el primer lenguaje de programación . Podemos decir "el primer lenguaje de programación de alto nivel" , por completud. Pero en rigor casi nadie programa en Ensamblador y definitivamente nadie escribe hoy en lenguaje de máquina . Escribimos programas (desde Windows hasta WhatsApp , desde Photoshop hasta el navegador con el que mirás Netflix ) con lenguajes que son descendientes de Fortran. No tal vez en su sintaxis (no del todo, digamos) ni en sus funciones específicas, pero C , Python , BASIC , Pascal y Java son también lenguajes de tercera generación. Lo mismo que los lenguajes orientados a objetos , dicho sea de paso. El asteroide Johnbackus en la base de datos de la NASA

El 17 de marzo de 2007 , a los 82 años , John Backus nos dejó. En ese momento residía en Ashland, Oregon . En junio de ese año , un asteroide fue bautizado en su nombre. Se lo merecía.
La Nación Argentina O Globo Brasil El Mercurio Chile
El Tiempo Colombia La Nación Costa Rica La Prensa Gráfica El Salvador
El Universal México El Comercio Perú El Nuevo Dia Puerto Rico
Listin Diario República
Dominicana
El País Uruguay El Nacional Venezuela