Fortran o FORmula TRANslation, es... un clásico. Lleva alrededor de 60 años con nosotros, y de hecho, su historia viene de ser el primer lenguaje de alto nivel desarrollado para mainframes. Y de hecho, sigue siendo así: los mayores supercomputadores utilizan Fortran para cálculo numérico, especialmente con matrices.
Hasta hace muy poco, nadie contemplaba Fortran más allá de un lenguaje de programación de nicho. Hasta que, hace un mes, este lenguaje de programación entró en el famoso TIOBE Index, que de alguna manera es aceptado como el índice de popularidad de cada lenguaje de programación.
¿Cómo es que un lenguaje de programación casi casi olvidado, de repente se hace un hueco entre el top-ten de los lenguajes de programación más populares?
El razonamiento es simple, o al menos, tiene sentido: Python es el lenguaje de programación más amado por todos, por su simpleza y su potencia, pero tiene un gran defecto: resulta que es lento. Efectivamente, Python es traducido a un bytecode que después es interpretado. De hecho, buena parte de las extensiones disponibles para Python (NumPy, Numba...), intentan paliar este problema dando soporte explícito para matrices y cálculo numérico desde código compilado mediante C, mediante la interfaz con este lenguaje de programación que proporciona Python. El siguiente paso es compilar Python, pero debido a su naturaleza dinámica, no es un paso sencillo. Otros lenguajes de programación que reclaman mayor velocidad de ejecución aún siendo dinámicos, como Julia, demuestran esta dificultad, pues no están maduros. ¿Hay algún otro lenguaje de programación compilado (y por lo tanto, rápido), que soporte cálculo numérico y matrices? Pues sí, y es que siempre lo ha habido: Fortran.
Fortran está viviendo un relanzamiento basado en este punto. El plan consiste en crear un nuevo compilador que aproveche las ventajas más recientes de los ordenadores personales. Por ejemplo, en este momento no se aprovecha de la capacidad del procesador de la tarjeta gráfica.
Para mi un problema (sí, un tanto superficial, lo sé), es que tiene un cierto tufillo antiguo, como demasiado clásico.
program CalculaHipotenusa
real :: cateto1
real :: cateto2
real :: hipotenusa
print *, "Dame el cateto 1: "
read(*, *) cateto1
print *, "Dame el cateto 2: "
read(*, *) cateto2
hipotenusa = sqrt( cateto1 ** 2 + cateto2 ** 2 )
print *, "La hipotenusa es: ", hipotenusa
end
¿Es Fortran el nuevo Python? Pues habrá que verlo. Sin duda, sería sorprendente.
Top comments (0)