La resurrección de FORTRAN

Three hosts trace Fortran's path from John Backus's 1950s work at IBM to its recent return to the TIOBE top 10 in May 2024. The original compiler took five years and roughly 25 person-years to build, and Fortran became ANSI's first standardized language in 1966. Its speed advantage for scientific computing kept it alive when machine time was expensive, and Fortran 2023 has revived interest.
Chapters
Fortran, Fortran, Fortran.
¿Qué haces?
Invocando a Fortran para que vuelva a la vida.
No te hace falta.
¿Y eso?
Porque vuelve a estar en el top 10 del índice TIOBE.
¿Y cómo es eso? ¿No había muerto hace tiempo?
No, los buenos lenguajes de programación nunca mueren.
O los que se emplearon mucho, pero no tienen por qué ser buenos.
Pero entonces, ¿Fortran es un buen o mal lenguaje de programación?
Te lo cuento.
Ahí vamos otra vez.
Antes de continuar, un inciso.
¿Te gustaría apoyar a nuestro canal?
No te olvides de darle a me gusta y, si no lo estás, suscribirte para no perderte futuro contenido. También puedes apoyarnos si quieres uniéndote al canal o enviándonos un gracias aquí abajo en el botoncito. Nosotros te lo agradeceremos igualmente y os avisaremos de ofertas y promociones del canal.
Y además también podemos acompañarte desde tu plataforma de podcast favorita.
Ahora sí, continúa.
John Bacchus.
Espera, ¿no íbamos a comenzar por la historia de Fortran?
Claro, pero antes tendremos que saber quién lo creó y por qué. Ya después te cuento por qué ha vuelto a ser uno de los más empleados.
John Bacchus, este hombre estuvo en la Segunda Guerra Mundial. Fue el que diseñó su propia placa para el cráneo, ¿no?
Sí, estuvo destinado en un hospital y aprendiendo hasta que se detectó un cáncer en el cráneo. Le extirparon parte del hueso y fue reemplazado por una placa, y como la placa no era muy buena, Él mismo diseñó una mejor.
Da buena idea de lo desenvuelto que era.
No solo eso. Aunque se licenció en matemáticas, no quería seguir su carrera en matemáticas o ingeniería, así que, por recomendación de un amigo, fue hasta Nueva York para entrevistarse con IBM.
¿Con IBM? ¿Directamente? ¿Y cómo le fue la entrevista?
Pues parece que fue algo informal y llamó la atención de los entrevistadores.
¿Resolvió de forma rápida un cubo de Rubik o algo así?
No, eso es de otra historia diferente, no. Como digo, los entrevistadores se sintieron sorprendidos porque, aunque tenía poca experiencia práctica, su capacidad de resolución de problemas era brillante.
¿La creación de Fortran fue una de estas resoluciones de problemas?
En verdad sí. En ese momento había ya circulando algunos compiladores de lenguajes.
A ver, teníamos el Superplan de Rutishouser, el A0, A1 y A2 de Grace Hopper, ¡oh, oh!
Glynne Autocode, ARC Assembly de Kathleen Booth, ¿IT de Perlis?
¿Speedcoding de... de Backus?
¡Exacto! El primer lenguaje creado por Backus fue Speedcoding.
¿Y por qué hizo ese lenguaje?
Como ya habrás averiguado por el listado de lenguajes, muchas empresas habían estado desarrollando compiladores o intérpretes que hacían mucho más fácil escribir código.
Mucho más fácil que directamente en código máquina como se venía haciendo.
Speedcoding entonces fue la propuesta de IBM para tener un lenguaje que reemplazase escribir código máquina.
¡Exacto! Fue un intento.
¿Un intento?
Uno de los primeros trabajos de Backus fue el cálculo de las posiciones de la Luna y fue tal dolor hacerlo directamente en código máquina que convenció a sus superiores para desarrollar un lenguaje de programación. Pero no tenían experiencia, por eso fue un intento.
¿Fortran no comenzó con buen pie?
No fue Fortran, este lenguaje fue Speedcoding.
Pues sí que les fue mal, ni siquiera había oído hablar de ese lenguaje.
Sí, este lenguaje podemos meterlo en el mismo saco que los otros citados porque se parecían mucho entre sí.
Pero algunos eran compilados y otros interpretados y su sintaxis era muy diferente. ¿En qué se parecían?
En su bajo rendimiento. Este vídeo ha sido patrocinado por Altenwald y ya sé lo que nos decís mucho: las conversaciones no parecen lo suficientemente serias y no damos muchos datos, por lo que hemos considerado oportuno daros la fuente de algunos de los datos y muchos más.
En el libro de historia de los lenguajes de programación años 1940-1959 podréis encontrar historias como la de Fortran y otras muchas más.
No perdáis la ocasión de haceros con el libro en formato digital o acceder a vuestra librería más cercana y solicitarlo en formato físico.
Acceded a altenbal.com y echad un vistazo a su catálogo. Ahora sí, continuamos. El rendimiento de los lenguajes. Entre los programadores surgía siempre un dilema: si hacer un programa rápido o hacerlo de forma comprensible.
Con hacerlo rápido te refieres a que se ejecute rápido, ¿no?
Exacto. Cuando un programador quería que un programa se ejecutase rápido, recurrían a expertos programadores y escribían el programa en código máquina.
Entonces, ¿cuando lo querían comprensible y no les importaba la velocidad, lo programaban en un lenguaje de programación?
Comprensible, si los lenguajes eran interpretados, no tendrían el mismo rendimiento que algo hecho en código máquina y seguramente El monstruo de Frankenstein resultante de una compilación de trozos no sería óptima.
No obstante, ¿qué tan malo era que una ejecución tomase más tiempo?
Pues al igual que IBM, muchos fabricantes de computadores no conseguían vender máquinas porque eran muy grandes, tomaban mucho tiempo en su instalación, los costes de tener una máquina en funcionamiento eran enormes, y finalmente preferían alquilar horas de ejecución.
¿Las alquilaban por tiempo como ahora las máquinas virtuales de Amazon Web Services, Azure de Microsoft y Google Cloud Platform?
Exacto. El problema era el precio por hora.
Muy elevado, ¿verdad?
Elevadísimo. Para las compañías desarrollar un programa no era costoso en comparación con ejecutarlo, por lo que preferían contratar gente experta en el desarrollo de programas con la garantía de una rápida ejecución para abaratar costes.
Vaya, por eso no se hicieron tan populares los lenguajes de programación.
Sí, por ese motivo entre los programadores se rechazaba la idea de trabajar con lenguajes de programación. Y dejaban su uso únicamente a inexpertos o al ámbito de la educación o entornos académicos, o empresas que dispusieran de sus propias máquinas donde el tiempo de ejecución no era un problema.
Pero Fortran tiene un rendimiento muy bueno, ¿no? Se ha empleado principalmente para cálculo y demostraciones científicas desde hace décadas, por lo que... ¿cambió las reglas de juego?
¡Exacto! El gran desafío que se planteó Backus fue desarrollar un lenguaje y compilador que igualase las capacidades de los mejores programadores de código máquina.
¡Una tarea titánica para una sola persona!
Seguramente trabajó en equipo. Conociendo a empresas tan grandes como IBM, si obtuvo el beneplácito de la empresa, seguro que le asignaron un equipo de personas.
Cierto. Backus escribió una carta a su jefe tras la experiencia con Speed Coding. Como habíamos dicho inicialmente, en la contratación de Backus quedó demostrada su habilidad para resolver problemas. Y el hecho de crear el primer lenguaje para IBM demostró sus capacidades, por lo que su jefe, Caspar Haardt, le concedió un equipo y todo el tiempo que requiriese.
¿Y cuánto tiempo se invertía normalmente en crear un lenguaje o compilador?
Pues depende. En el caso de los compiladores que se habían desarrollado hasta la fecha, no se tomaron nada más que algunos meses.
De hecho, parece que fue la mofa en una conferencia cuando Alan Perlis, el creador de IT, Dijo que Backus se estaba tomando años en hacer un compilador mientras que uno de sus graduados hizo un compilador en un verano.
¿Años? ¿Cuánto tardaron en crear el compilador?
Fortran tomó 5 años y el tiempo de 5 personas en completarse, lo que en cómputo típico de hombres por año daría 25 hombres años.
Seguro que cerró muchas bocas cuando se presentó.
Pues sí, aunque puede que no inmediatamente. El lanzamiento de Fortran. El lanzamiento de Fortran fue algo accidentado. En los años 50, la gramática y los analizadores léxicos y semánticos no estaban a la orden del día, por lo que cometieron un error que hizo que no funcionase con el código de ejemplo.
¿Un error en un signo de puntuación?
Sí, en lugar de colocar una coma en un bucle, colocaron un punto, cambiando completamente el significado de la expresión y haciendo que no hiciera lo que se esperaba. De hecho, no hacía nada.
Vaya, pobre.
Problemas del directo.
No obstante, Fortran demostró que cualquier persona con conocimientos del lenguaje y nada de código máquina podía escribir un programa que se ejecutase tan rápido como el programa hecho por uno de los mejores programadores en código máquina.
Vaya, la máquina contra el hombre.
Progreso en verdad.
Claro, ¿prefieres gastar tu tiempo en escribir unos y ceros o en crear más y mejores programas?
Entonces, Fortran se hizo conocido entre los usuarios de máquinas por horas porque podrían crear programas sin necesidad de contratar a un profesional, ¿no?
Fue una de las grandes revoluciones que hizo que los servicios de computación se emplearan aún más. Fortran hoy. Fortran es el primer lenguaje estandarizado por ANSI en 1966. Desde entonces ha tenido varias revisiones, siendo la de 2023 la última.
¿2023? ¿Entonces se sigue actualizando?
¿Y se sigue usando?
De hecho, sí. Por eso decíamos que ha vuelto a entrar en el top 10 del índice TIOBE.
Mmm... ¿Qué es el índice TIOBE?
Un momento, ¿no lo sabías? Me podrías haber preguntado antes.
Es un índice que mide la popularidad de los lenguajes de programación creado por la empresa TIOBE de Eijdenhoven, en Países Bajos.
¿En qué posición está ahora?
Pues la última publicación es de mayo de 2024 y Fortran ocupa la posición número 10.
¿Por delante de PHP?
¿Y de Ruby, Swift y Rust?
Pero no de Go.
¿Por qué se le ha dado esa posición ahora?
Tío B argumenta que cuando se busca el libro de Fortran en Amazon puedes encontrar más de 1000, mientras que otros como Kotlin o Rust apenas llegan a 300.
Por los libros, pero puede que muchos estén desactualizados.
También por la publicación del ISO de Fortran 2023.
Una actualización, pero Kotlin y Rust seguro que han tenido también actualizaciones.
Según Paul Janssen, el CEO de Tiobe, también se debe a un incremento en la necesidad de computación numérica y matemática que sus competidores no han sabido atender.
¿Cuáles son sus competidores?
Déjame ver... Python.
Demasiado lento en comparación.
¿Y MATLAB?
Fácil de usar pero con licencias muy costosas.
¿C o C++?
No tiene soporte nativo para computación matemática.
¿Y R?
Similar a Python en lentitud y menos popular.
¿Y Julia?
No es lo suficientemente maduro.
Es como Julia, no puede estar en ningún top.
Entonces sigue ahí por no haber uno mejor para hacer su tarea.
Y porque al actualizarse da esperanzas de ser mejor para las tareas que ya realiza. Conclusiones. Fortran ha sido un lenguaje que desde su creación ha estado al pie del cañón demostrando su valía frente a otros lenguajes y usos que lo desacreditaban y aún así salió airoso.
Estuvo compitiendo mano a mano con COBOL durante muchos años Y ha sido elegido en muchas universidades sobre C para la programación en entornos de física y otras doctrinas científicas.
No obstante, la espada de Damocles pende sobre su cabeza, y es verdad que ya ha pasado con COBOL en anteriores ediciones de TIOBE que su resurgimiento solo duraba un mes a lo sumo.
¿Crees que Fortran se mantendrá en el top 10 y más gente se interesará por este lenguaje?
¿Has programado o visto este lenguaje alguna vez?
¿Crees que Julia podría llegar a quitarlo de en medio?
¿Eso ha sido un chiste?
¿Qué?
Déjanos tu comentario.
More from Manuel

Historia de los Lenguajes de Programación: años 1960-1969 #basic #apl #simula #lisp #logo

¿Compilador o intérprete? La historia de una rivalidad que comenzó en los años 40








