Fortran: Historia de un fósil vivo

El código que predice el tiempo que hará mañana, diseña el ala de tu próximo avión y decide cuál es la supercomputadora más rápida del mundo tiene casi setenta años. Se llama Fortran.

El código que predice el tiempo que hará mañana, diseña el ala de tu próximo avión y decide cuál es la supercomputadora más rápida del mundo tiene casi setenta años. Se llama Fortran. Y mientras todo el mundo lo da por muerto, una camada de proyectos open source acaba de asomar la cabeza para asegurar que siga vivo otras tres décadas.

Este es un lenguaje nacido en mil novecientos cincuenta y siete, cuando programar significaba mover interruptores físicos. Un lenguaje inventado por un matemático al que le daba pereza programar. Un lenguaje que su propio creador repudió públicamente en el escenario más importante de la informática. Y que, sin embargo, está más vivo en dos mil veintiséis de lo que lo ha estado en décadas.

Esta es su historia.

Portada del artículo: tarjeta perforada Fortran con código moderno

Por qué importa

Hay un ranking mundial llamado TOP500 que desde mil novecientos noventa y tres publica dos veces al año cuáles son las quinientas supercomputadoras más potentes del planeta. El benchmark que se usa para medirlas se llama HPL y está escrito en Fortran. Si Fortran muriera, ese ranking no tendría manera estándar de existir.

Y no se trata solo de una pieza académica. La predicción meteorológica que miras en tu móvil cada mañana se calculó en algún supercomputador ejecutando Fortran. El ala del Boeing 787 y del Airbus A350 se diseñó con simulaciones de dinámica de fluidos computacional escritas en Fortran. La posición de las estrellas en los almanaques náuticos — los que consultan los barcos en mitad del océano para orientarse — se calcula con una biblioteca Fortran llamada SOFA, mantenida por la Unión Astronómica Internacional.

Un físico americano, Cecil Leith, lo resumió en mil novecientos noventa y tres con una frase que sigue siendo incómoda para el resto de la industria: «Fortran es la lengua materna de la computación científica». Y añadió que su reemplazo por cualquier otro lenguaje «puede seguir siendo una esperanza vana».

Treinta y tres años después, la frase sigue siendo cierta. ¿Cómo es posible?

El nacimiento: cuando un vago cambió la ciencia

John Warner Backus nació en Filadelfia en mil novecientos veinticuatro. Estudió química, lo expulsaron de la universidad, se alistó en el ejército, le detectaron un tumor benigno en el cráneo y le pusieron una placa de metal en la cabeza. Cambio de carrera. De química a matemáticas. Se doctoró en Columbia. Y en mil novecientos cincuenta entró en IBM.

Su primer trabajo fue calcular las posiciones de la Luna en una computadora que se llamaba SSEC. Programa tras programa, Backus se fue hartando de escribir en lenguaje ensamblador. En mil novecientos cincuenta y tres creó Speedcoding, un primer lenguaje de alto nivel. Pero era solo el principio.

En diciembre de mil novecientos cincuenta y tres presentó a sus jefes de IBM la propuesta formal: crear un sustituto del lenguaje ensamblador para el IBM 704, una computadora que se usaba sobre todo para investigación científica. La idea era que los científicos pudieran escribir ecuaciones casi como las escribirían en un papel. Su motivación personal quedó registrada en una entrevista a la revista Think de IBM en mil novecientos setenta y nueve:

“Much of my work has come from being lazy. I didn’t like writing programs, and so, when I was working on the IBM 701, writing programs for computing missile trajectories, I started work on a programming system to make it easier to write programs.”

John Backus, 1979

Por primera vez en la historia, un programador recibía dinero para no tener que programar. Y se lo dieron.

Backus reunió a un equipo de diez personas: Richard Goldberg, Sheldon Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Harold Stern, Lois Haibt y David Sayre. Entre ellos, Lois Haibt — matemática de Cornell — terminó siendo la responsable del optimizador del compilador, una de las piezas más innovadoras del proyecto. Una mujer programando en los años cincuenta lo que cambiaría la ciencia. Y casi nadie lo sabe.

Backus (centro) con el equipo de Fortran I, IBM 1957

El equipo trabajó durante casi cuatro años para sacar adelante el primer compilador. Para que nos hagamos una idea: hoy un estudiante compila un «Hello World» en Fortran en cinco minutos. En esa época, hacer que la primera versión del compilador funcionara fue una hazaña comparable a poner un hombre en la Luna.

En octubre de mil novecientos cincuenta y seis apareció el primer manual: The Fortran Automatic Coding System for the IBM 704. Y en abril de mil novecientos cincuenta y siete se entregó el primer compilador Fortran de la historia. Era el primer compilador comercialmente disponible del mundo. El primero.

El truco: el compilador de Backus no era un traductor tonto. Era un optimizador radical. Entre otras cosas, ejecutaba el programa en modo Monte Carlo en tiempo de compilación para decidir dónde colocar los bloques básicos en memoria y minimizar saltos. Casi nada para la época.

Los programadores de ensamblador se opusieron. «Un lenguaje de alto nivel nunca será tan eficiente», dijeron. Backus demostró que estaban equivocados. El código generado por Fortran era casi tan bueno como el ensamblador escrito a mano. Y la ciencia adoptó Fortran masivamente.

La conquista: 220.000 manuales y un ejército de compiladores

¿Por qué ganó Fortran? Tres razones que siguen siendo válidas sesenta y nueve años después.

Primera: la notación. Una sentencia como X = A + B se lee como en un libro de física, no como en un manual de hardware. Y los arrays son un tipo de dato de primera clase, una novedad absoluta para la época. La operación A = B + C se aplica sobre arrays enteros sin necesidad de bucles. Sesenta y nueve años después, los compiladores modernos siguen optimizando exactamente este tipo de operaciones con técnicas que ningún otro lenguaje aprovecha igual de bien.

Segunda: los números complejos son nativos desde el principio. Imprescindible para ingeniería eléctrica y para casi todo el cálculo numérico avanzado.

Tercera: Fortran trata los arrays como bloques contiguos en memoria, lo que permite a los compiladores aplicar optimizaciones automáticas — como la vectorización o el paralelismo — que en otros lenguajes son más complicadas. Es la diferencia entre una herramienta diseñada desde el principio para cálculo numérico y una adaptada después. Y eso se nota en el rendimiento: el código Fortran optimizado sigue rivalizando con ensamblador escrito a mano en muchas cargas de trabajo científico.

Los números de la eclosión: para mil novecientos sesenta ya existían versiones de Fortran para los principales mainframes de IBM. En mil novecientos sesenta y tres existían más de cuarenta compiladores Fortran en el mundo, de distintos fabricantes, y se habían distribuido más de doscientos veinte mil manuales. Y en mil novecientos sesenta y seis, solo las ventas de compiladores Fortran de IBM fueron de trescientos millones de dólares — al cambio actual, casi tres mil millones de dólares en un solo año, para un lenguaje que ya tenía nueve años.

En menos de una década, Fortran pasó de ser una apuesta personal de un vago en IBM a ser la lengua franca de la ciencia mundial.

El Nobel arrepentido: el inventor que se retractó

En mil novecientos setenta y siete, John Backus recibió el Turing Award, el reconocimiento más prestigioso de la informática, por crear Fortran. Era el punto culminante de una carrera.

Y aquí la historia se pone rara.

En lugar de celebrar su invento, Backus titula su conferencia de aceptación «¿Puede la programación liberarse del estilo Von Neumann?». Y el contenido es, literalmente, una disculpa pública por haber creado Fortran. Dice que el estilo de programación que su propio lenguaje ayudó a imponer — variables, asignación, estado mutable — fue un error histórico. Propuso un sustituto: FP, un lenguaje funcional sin variables, sin asignaciones, sin estados. Su intención era jubilar a su propio hijo antes de que cumpliera veinte años.

El mundo: silencio. FP no se adoptó. La audiencia aplaudió y volvió a programar en Fortran.

Lo que dijo Backus en ese discurso se ha convertido en uno de los textos más citados de la historia de la informática. Pero el lenguaje que intentó jubilar sigue activo. Sesenta y nueve años después. Y su inventor ya no.

La ironía es perfecta: el creador de Fortran ganó el Nobel de la informática. Y lo usó para decir que su mayor invento había sido un error. Sesenta y nueve años después, el error sigue vivo. Y sigue siendo irremplazable.

El benchmark que clasifica el mundo

Volvamos al TOP500. La supercomputadora más rápida del mundo en junio de dos mil veintiséis se llama LineShine y está en Shenzhen, China. Alcanza dos mil ciento noventa y ocho petaflops — un uno seguido de quince ceros de operaciones por segundo. Y demuestra que lo es ejecutando Fortran.

Sala de supercomputación moderna, racks de servidores con iluminación azul

Piénsenlo un momento: el código que decide cuál es la máquina más rápida del planeta tiene casi setenta años. Es más antiguo que la propia NASA (que se fundó en julio de mil novecientos cincuenta y ocho, un año después de que se entregara el primer compilador Fortran). Setenta años después, sigue siendo la referencia.

La distribución de las quinientas supercomputadoras más rápidas del mundo hoy: Estados Unidos lidera con diferencia. Europa en conjunto tiene la segunda mayor concentración. Y Japón y China completan el podio. Las cifras exactas, como siempre, se pueden consultar en la web del TOP500. Pero basta decir que la totalidad del ranking se mide ejecutando código escrito antes de que el Sputnik se lanzara al espacio.

Aplicaciones invisibles: predicción meteorológica, alas de avión, estrellas

Pero lo realmente interesante de Fortran no es el ranking. Es lo que ese código hace todos los días sin que nos demos cuenta.

Predicción meteorológica. La predicción que miras a las siete de la mañana en tu móvil se calculó en algún supercomputador ejecutando Fortran. El modelo IFS del ECMWF (el centro europeo de predicción) está escrito en Fortran y corre predicciones a diez días vista, dos veces al día. El modelo GFS de la NOAA estadounidense corre a dieciséis días vista. El Unified Model del Met Office británico, a seis días vista. Y WRF, el modelo open source más usado en investigación atmosférica, también es Fortran. Cada vez que ves el símbolo del sol o de la lluvia en tu app del tiempo, hay un código de los años setenta, ochenta o noventa haciendo los cálculos. PREDICIENDO. La atmósfera es un sistema caótico y los modelos son aproximaciones. Pero esas aproximaciones se hacen en Fortran.

Aeroespacial. El ala del Boeing 787 y del Airbus A350 se diseñó con simulaciones de dinámica de fluidos computacional escritas en Fortran. La simulación de asteroides cercanos a la Tierra, las órbitas de satélites, los diseños de cohetes: Fortran. La NASA lleva más de sesenta años usando Fortran para CFD, para simulaciones orbitales, para casi todo lo que se mueve por el espacio. Cuando oímos que un software aeroespacial falla, casi nunca es el código Fortran que diseñó la aerodinámica; es otra capa, más moderna, con menos décadas de verificación.

Astronomía y navegación. La biblioteca SOFA (Standards of Fundamental Astronomy), mantenida por la Unión Astronómica Internacional, está escrita en Fortran. Se usa para calcular la posición exacta de las estrellas, los planetas y la Luna en los almanaques náuticos. Cuando un barco en mitad del océano consulta su posición usando las estrellas, está usando números calculados con Fortran.

El revival silencioso: Fortran está resurgiendo

Ahora, la parte que contradice casi todo lo que se ha oído sobre este lenguaje.

Porque Fortran no solo sigue vivo: está resurgiendo con herramientas que muchos lenguajes modernos tardaron décadas en tener. Y mientras el mundo lo daba por muerto, una comunidad open source lo ha estado rescatando en silencio.

El proyecto más visible se llama LFortran. Es un compilador moderno basado en LLVM (la misma infraestructura que usa el compilador de Rust o el de Clang para C++). Lo lidera un físico checo-americano, Ondřej Čertík, y está esponsorizado por NumFOCUS — la misma fundación que respalda a NumPy, SciPy y Jupyter. LFortran está todavía en fase alpha, pero ya compila ocho de cada diez paquetes científicos de referencia, incluyendo SNAP del laboratorio de Los Alamos, el sesenta por ciento de las fuentes Fortran de SciPy, y casi todo el stdlib de Fortran. Y se puede ejecutar directamente en el navegador, vía WebAssembly. Escribes Fortran en una página web y corre.

Y no es solo LFortran. La comunidad ha creado fpm — el equivalente a Cargo de Rust o pip de Python para gestionar proyectos Fortran — y stdlib, una biblioteca estándar comunitaria moderna. Y la nueva revisión oficial del lenguaje, Fortran 2023, se publicó en noviembre de dos mil veintitrés. Sesenta y seis años después de la primera versión. Y ya se está trabajando en la siguiente.

Lo que está pasando es un revival silencioso. El fósil está vivo. Y tiene una camada de cachorros open source que están asegurando que siga vivo treinta años más.

Y la IA, irónicamente, está ayudando. GitHub Copilot y otros modelos generativos escriben Fortran razonablemente bien para código numérico estándar. La barrera de entrada baja. Un físico de veinticinco años puede aprender Fortran moderno más rápido que un físico de veinticinco años podía aprenderlo en los años noventa.

Coda: COBOL y Fortran, los dos abuelos

En mil novecientos cincuenta y siete nació Fortran. Dos años después, en mil novecientos cincuenta y nueve, nació COBOL. Los dos lenguajes nacieron con dos años de diferencia. Ambos fueron diseñados como soluciones temporales. Ambos han sido declarados «muertos» por la prensa tecnológica desde los años noventa. Y ambos siguen siendo irremplazables en sus respectivos dominios.

La diferencia: COBOL mueve tu dinero — cada vez que sacas efectivo del cajero, pagas con tarjeta o cobras una pensión, hay un COBOL de mil novecientos sesenta procesando la transacción. Fortran predice tu tiempo, diseña tu próximo avión y calcula dónde están las estrellas que guían a los barcos. Si quieres leer la historia del otro abuelo, el que mantiene vivo el sistema financiero global, la encontrarás en este artículo sobre COBOL.

Mismo patrón. Distinto destino. Los dos lenguajes que se suponía iban a jubilarse en los años sesenta siguen sosteniendo, en dos mil veintiséis, la infraestructura más crítica del mundo moderno. Y la pregunta interesante ya no es cuánto tiempo más podrán seguir. La pregunta interesante es: ¿qué nos dice eso sobre cómo escribimos software hoy? ¿Cuántos de los frameworks y lenguajes que estamos adoptando ahora seguirán funcionando cuando sus inventores ya no estén? ¿Cuántos se jubilarán solos y cuántos terminarán como Fortran, mantenidos por camadas de comunidades que se niegan a dejarlos morir?

Probablemente menos de los que pensamos.

Si te ha gustado esta historia, en el canal millaredos de YouTube puedes ver la versión narrativa de este artículo. Y si te interesa el otro abuelo de la informática, también hay vídeo y artículo sobre COBOL.

Deja un comentario

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