En el Museo de Historia de la Computación, que desde 1996 tiene su sede en Mountain View, California, cuentan con una completa página web que nos permite visitarlo virtualmente y repasar la historia que albergan sus instalaciones. De su contenido destaco una frase: “el software es más que un críptico código de computación. Es una forma de arte: una literatura meticulosamente elaborada que permite complejas conversaciones entre humanos y máquinas”.
Comunicarnos con nuestro ordenador o con nuestro smartphone es hoy en día tan fácil como pulsar unos iconos, abrir unos menús, elegir una opción de una lista de acciones… Podemos comunicarnos con cualquier dispositivo mediante ratones, teclados, pantallas táctiles o incluso con la voz. Pero en los albores de la computación, hablar con un ordenador consistía en introducir una tarjeta perforada que representaba órdenes en código binario. Era la única manera de hacernos entender con las primeras computadoras.
Así pues, programar es la manera de comunicarnos con un dispositivo electrónico o, más allá, crear las herramientas necesarias para que cualquiera pueda interactuar con ese dispositivo. Y como destaca el propio Museo de Historia de la Computación, fue con Fortran que empezó la programación moderna tal y como la conocemos ahora. No hay que desmerecer el papel de Ensamblador, el primer lenguaje mediante código que abrió las puertas a los lenguajes genéricos que vendrían más adelante, pero fue con Fortran que se inició la estela de lenguajes que hemos visto durante estas décadas hasta la actualidad. Ésta es su historia.
Un lenguaje de programación natural
En el índice TIOBE de lenguajes de programación más solicitados, Fortran sigue estando ahí, en concreto en la plaza 29 de más de 100 lenguajes indexados. Obviamente, los reyes son Java, C Python y otros lenguajes más modernos, pero que un lenguaje tan primigenio como Fortran siga con vida tiene mérito en un mundo, la computación, en el que todo avanza y sucede tan rápido.
Fortran nace en 1954. Su paternidad se le atribuye a John Backus, científico computacional estadounidense que trabajaba para IBM y que propuso crear un lenguaje de programación cercano a la notación matemática normal. Acrónimo de FORmula TRANslation, el propósito inicial de este lenguaje era traducir fácilmente fórmulas matemáticas en código que entendiera un ordenador de la época.
Como curiosidades, el año anterior, Backus había estado trabajando en otro lenguaje similar llamado Speedcoding y desarrollado para equipos IBM 701. Y entre sus trabajos previos en IBM, destaca su trabajo en el proyecto SSEC (Selective Sequence Electronic Calculator) escribiendo un programa que calculara las posiciones de la luna.
Volviendo a Fortran, sus especificaciones estuvieron listas en 1954, inicialmente para funcionar en equipos IBM 704, pero no fue hasta dos años más tarde que se publicó el primer manual de Fortran y se hizo público, finalmente, en 1957 en la Western Joint Computer Conference de Los Angeles. Curiosamente hubo una reticencia inicial de adoptar este nuevo lenguaje en vez del lenguaje ensamblador (1949) al que ya estaban todos acostumbrados. Con todo, Fortran hacía más ágil la tarea de programar, eliminando el número de líneas de código necesarias, por lo que no tardó en popularizarse. Eso sin contar con que se trataba del primer lenguaje de alto nivel, lo que permitía programar de manera más natural al lenguaje humano. Además, introducía el concepto de compilador, lo que permitía traducir programas enteros para distintas máquinas, algo que antes se hacía a mano.
Hace tiempo hablé en un artículo titulado BASIC, el primer lenguaje para todos los públicos, que el lenguaje BASIC democratizó el acceso a la computación a todo el mundo, algo que antes estaba restringido a ingenieros, matemáticos y otras profesiones técnicas. Esto a nivel de microordenadores, las computadoras que empezaron a surgir a partir de los años 70. Pero antes de los llamados microordenadores, las computadoras de aquel entonces, de mayor tamaño, también estaban a restringidas a un pequeño grupo de profesionales. Con Fortran, cualquiera podía aprenderse los comandos necesarios para crear un programa y dárselo a la computadora para que lo ejecutara. No era tan fácil como programar un microondas, pero sí fue un gran salto evolutivo.
Los estándares
El equipo dirigido por John Backus y que hizo posible el lenguaje Fortran estaba compuesto principalmente por ingenieros, programadores y matemáticos y, como curiosidad, un criptógrafo y un experto en ajedrez. En entrevistas posteriores, un miembro del equipo, Richard Goldberg, llegó a decir: “éramos los ‘hackers’ de esos días”.
Por primera vez en la historia de la computación, era el software el que se llevaba todo el protagonismo tras varios años en los que la maquinaria y su constante evolución protagonizaban los titulares. Fortran cambió el panorama e hizo con una misma computadora se pudieran realizar tareas de manera más eficiente, ya que el código necesario se escribía en menos tiempo y no requería perfiles tan especializados. El éxito de Fortran fue tal que John Backus fue premiado en 1975 con la Medalla Nacional de Ciencia de Estados Unidos y en 1977 se le otorgó el Premio Turing de la Association for Computing Machinery.
Pero volvamos a Fortran, un lenguaje que no dejó de evolucionar. Si decíamos que se creó en 1954 y se puso a la venta por primera vez en 1957, ya en 1958 surge Fortran II, una versión mejorada del lenguaje original que introduce, entre otras cosas, subrutinas y funciones. En paralelo surge Fortran III, ese mismo año, pero no llegó a comercializarse. La lista sigue con Fortran para IBM 1401 y Fortran IV en 1961. En definitiva, en pocos años se generan varias versiones del mismo lenguaje de programación, lo que ocasiona incompatibilidades y problemas varios.
Como consecuencia, la Asociación Americana de Estándares se plantea estandarizar Fortran para poner un poco de orden en el galimatías generado. De ahí surgen los estándares Fortran, para mencionar el lenguaje original, aunque con las mejores de Fortran II, y Fortran 66, basado en Fortran IV y que desde ese momento, 1966, será el estándar para quien quiera programar empleando este lenguaje.
Sin entrar en detalles técnicos, Fortran se siguió mejorando con los años introduciendo nuevas órdenes, comandos y funcionalidades, de manera que en 1977 surgió Fortran 77 seguidas de Fortran 90, Fortran 95, Fortran 2003, Fortran 2008 y, finalmente, Fortran 2018. Si os interesa conocer las diferencias, cambios e implementaciones de cada una de estas mejores podéis consultar The Home of Fortran Standards.
El legado de Fortran
Si consultamos un árbol genealógico de lenguajes de programación, en la mayoría de ellos aparece Fortran como el primero y de él van surgiendo todos los demás. Uno de los más completos podemos encontrarlo en la página de IBM dedicada a sus 100 años y que ofrece una gran cantidad de material sobre cómo ha evolucionado la informática durante todo este tiempo.
No es que haya una relación directa entre unos lenguajes y otros, pero en estos árboles genealógicos se relacionan lenguajes en función de la similitud y de la influencia que unos han tenido sobre otros. De Fortran surgieron, por ejemplo, lenguajes que luego tuvieron gran proyección, como Lisp (1958), COBOL (1959) o ALGOL (1958). A su vez, de éstos surgieron otros y así en una infinidad de ramas que llegan a nuestros días.
Decía al principio de este artículo que Fortran sigue vivo y está entre los primeros 30 lenguajes de programación. Podemos encontrar abundante bibliografía relacionada con Fortran, tanto manuales antiguos como modernos. En la red, por ejemplo, hay recursos muy completos como Fortran Wiki, donde explica todo lo que necesitamos saber sobre Fortran, sus diferentes estándares y demás información relevante.