Quien lleva algo de tiempo en estos temas de la programación sabrá que existe un lenguaje de programación llamado Fortran. Un lenguaje de programación bastante poderoso para el ámbito científico y que ahora, en estos tiempos, ha ido recobrando un poco de popularidad.
En este blog ya hablamos un poco de ello:
Pues ahora continuaremos hablando de el.
Fortran al igual que C, C++, Oberon o Java es necesario especificar los tipos de datos a tratar. Olvidemos las malas costumbres de lenguajes como Javascript y Python a la hora de definir nuestras variables. No, no es lo mismo
var numero = "911"
que int numero = "911";
. Quienes aprendimos C como primer lenguaje lo sabemos a detalle.
Pues en Javascript y/o Python se puede hacer cosas como estas (casi sin ningún reparo) var numero = "911"; numero = 911; console.log("Valor del número: ", numero);
, pero en Fortran y demás lenguajes no se podrá. El programa no compilará.
Las ventajas de esto es que un programa compilado ( y tipado fuerte) es más eficiente que un programa interpretado. Y en su ejecución se verá. Ya que su rendimiento y eficiencia es mucho mejor. Esta es una de las razones por la que "lenguajes muertos" como Fortran vuelven a estar en la pasarela de la programación.
Quienes se dedican al tratamiento de datos no dejarán mentir. Un programa en Fortran es mucho más eficiente que uno hecho en Python (sin uso de librerías como Pandas, Numpy o cualquier otra librería, pues ellas hacen el trabajo pesado).
Fortran es muy similar a lenguajes como Pascal y Oberon (los cuales son de paradigma procedural). Nació con el objetivo de resolver problemas numéricos, probabilísticos y todo tipo de operación que fuese compleja para los seres humanos. Un lenguaje que prometía bastante hasta la llegada del poderoso C de Dennis Ritchie. Que fue un boom en su época, pues marcó la pauta para la existencia de lenguajes aún más poderosos (Java, C++, etc.).
Miremos el clásico "Hola, mundo" hecho en este lenguaje (Fortran 90/95). Ve el enlace de arriba si quieres saber donde descargarlo.
holamundo.f90
program holamundo print *, '¡Hola, mundo en Fortran!' end program holamundo
Lo compilamos y, una vez creado el ejecutable, lo haremos andar:
$ gfortran holamundo.f90 -o holamundo.exe
Salida:
¡Hola, mundo en Fortran!
Uno de los aspectos a criticar es su sintaxis, ya que a los programadores actuales les parecerá poco atractiva e incluso arcaica o fea. Siendo sincero, una sintaxis como la de Golang o Python sería más atractiva. Veamos un ejemplo de un programa que obtenga las raíces de una ecuación cuadrática. El usuario introducirá tres valores y, si hay solución, mostrará el resultado en pantalla. En caso de no haber solución, mostrará un mensaje.
cuadratica.f90
program quadratica implicit none real :: a, b, c real :: discriminante real :: x1, x2 print *, "Introduce los valores de a, b y c:" read *, a, b, c discriminante = b**2 - 4*a*c if ( discriminante>0 ) then x1 = ( -b + sqrt(discriminante)) / (2 * a) x2 = ( -b - sqrt(discriminante)) / (2 * a) print *, "Raices reales:" print *, x1, x2 else if ( discriminante==0 ) then x1 = - b / (2 * a) print *, "Raiz real:" print *, x1 else print *, "Sin raices reales." end if end program quadratica
Compilación:
$ gfortran cuadratica.f90 -o cuadratica.exe
Salida:
Introduce los valores de a, b y c: 3 4 1 Raices reales: -0.333333343 -1.00000000
Observemos que en un programa Fortran es preciso definir los tipos de datos a usar. En este caso definimos seis variables de tipo ``real`` lo que vendría siendo ``double`` en lenguajes como C..
Veamos ahora un programa que calcule el IMC de una persona. El programa solicitará el peso y talla de la persona. Obtendrá el IMC y su diagnóstico general.
imc_calculador.f90
program imc_calculador implicit none real :: peso, talla, imc character(len=50) :: cad ! Solicitar el peso print *, 'Tu peso: ' read *, peso ! Solicitar la talla print *, 'Tu talla: ' read *, talla ! Calcular el IMC imc = peso / (talla * talla) ! Evaluar las categorías del IMC if (imc < 16.0) then cad = 'Infrapeso: Delgadez Severa' else if (imc >= 16.0 .and. imc <= 16.99) then cad = 'Infrapeso: Delgadez Moderada' else if (imc >= 17.0 .and. imc <= 18.49) then cad = 'Infrapeso: Delgadez Aceptable' else if (imc >= 18.5 .and. imc <= 24.99) then cad = 'Peso Normal' else if (imc >= 25.0 .and. imc <= 29.99) then cad = 'Sobrepeso' else if (imc >= 30.0 .and. imc <= 34.99) then cad = 'Obeso: Tipo I' else if (imc >= 35.0 .and. imc <= 40.0) then cad = 'Obeso: Tipo II' else cad = 'No existe clasificación' end if ! Imprimir los resultados print *, 'Tu IMC es: ', imc print *, 'Tu diagnóstico es: ', trim(cad) end program imc_calculador
Observemos que definimos tres variables tipo ``real`` y una cadena de caracteres ``character`` con una longitude 50.
Compilamos:
$ gfortran imc_calculador.f90 -o imc_calculador.exe
Salida:
Tu peso: 65 Tu talla: 1.66 Tu IMC es: 23.5883293 Tu diagnóstico es: Peso Normal
Fortran en la actualizad es un lenguaje poderoso en el ámbito científico. Solo seguido de lenguajes como Julia y R. El inconveniente sería su sintaxis ya que no es muy atractiva o sencilla como la de esos dos. Pero en capacidad puede superarlos.
Con el advenimiento de las I.A.s ( y el Vibe Coding) saber programar cada vez será esencial para los que realmente quieren dedicarse a ello. Conocer los aspectos de un lenguaje, su próposito, filosofía y casos de uso no se debe dejar en saco roto.
Contnuaremos con esta serie sobre lenguajes de programación.
Enlaces:
https://fortran-lang.org/es//https://wwwhatsnew.com/2021/05/05/fortran-el-lenguaje-de-programacion-vuelve-a-ser-popular/
https://flibs.sourceforge.net/examples_modern_fortran.html
Comentarios
Publicar un comentario