Fortran 2023

La publicación del estándar Fortran 2023 vuelve a llamar la atención sobre un lenguaje que sigue siendo central en la computación de alto rendimiento en campos como la predicción meteorológica, el modelado climático, CFD y la física. Los comentaristas destacan las fortalezas de Fortran —especialmente su semántica de arrays, sus reglas estrictas de aliasing y sus compiladores maduros—, que facilitan escribir código numérico rápido más que en C/C++ o Python+NumPy, al tiempo que señalan carencias como la débil gestión de cadenas, la falta de genéricos y unas herramientas fragmentadas. También hay debate sobre la evolución lenta y conservadora del estándar, la especificación oficial de ISO de pago y si las grandes bases de código heredadas de Fortran deberían portarse a lenguajes más nuevos o, en cambio, recibir mejor soporte en aceleradores modernos como las GPU.

Cambios del lenguaje y estandarización

  • Fortran 2023 se describe como una actualización incremental sobre 2018 y 2008, con relativamente pocas funciones nuevas.
  • Un cambio semántico notable: las escrituras internas en variables de caracteres asignables ahora deben reasignarse para coincidir con la longitud escrita en lugar de rellenar/truncar, lo que puede romper código que antes era conforme.
  • Se critica en parte que Fortran estandariza funciones antes de una implementación/prueba seria, lo que lleva a ambigüedades y a comportamientos incompatibles de los compiladores descubiertos años después.

Compatibilidad de compiladores y herramientas

  • Los compiladores de código abierto mencionados actualmente: GFortran, LLVM Flang y LFortran, todos compatibles con “modern Fortran” pero aún no con F’23 completo.
  • Flang puede advertir sobre construcciones cuya semántica cambia bajo F’23.
  • Se cita como punto débil la falta de un gestor de paquetes estándar y ampliamente adoptado, a pesar de proyectos como FPM.

Por qué sigue usándose Fortran

  • Dominios principales: predicción numérica del tiempo, modelos climáticos, CFD, análisis por elementos finitos, geofísica, física computacional, cristalografía, química computacional, bioinformática y código nuclear/de armas.
  • Gran inercia: bases de código heredadas muy grandes y muy optimizadas, y experiencia en instituciones científicas y laboratorios gubernamentales.
  • Fortran se percibe como relativamente pequeño y fácil de aprender para científicos/estudiantes de posgrado en comparación con C++.

Rendimiento frente a otros lenguajes

  • Ventaja clave: las reglas estrictas sobre aliasing de arrays y un modelo de memoria más restrictivo permiten una optimización agresiva, especialmente para arrays multidimensionales y slices.
  • C puede igualar teóricamente el rendimiento con restrict, código cuidadoso e incluso ensamblador, pero esto se describe como frágil y costoso en esfuerzo frente a los valores predeterminados de Fortran.
  • Fortran se compara con un “Matlab altamente optimizado” o con un lenguaje de arrays tipo NumPy; hacer trabajo equivalente con arrays en C/C++ se considera engorroso.
  • Debate sobre si las abstracciones y bibliotecas modernas de C++ (por ejemplo, Eigen) han cerrado la brecha; consenso en que Fortran sigue facilitando el alto rendimiento para programadores no expertos.
  • NumPy llama principalmente a C/BLAS/LAPACK; la sobrecarga de la interacción Python–FFI puede importar para arrays pequeños.

GPU, ecosistema y futuro

  • Existe soporte para GPU (por ejemplo, CUDA Fortran), pero las soluciones portables de código abierto se ven como incompletas; esto motiva algunos portados a Julia, C++, Python/JAX o shaders.
  • Algunos dicen que pocos proyectos realmente nuevos de Fortran comienzan fuera de los dominios tradicionales; otros señalan marcos modernos de inferencia de IA/ML y redes neuronales escritos en Fortran.
  • Se informa que la comunidad está más activa y organizada que hace una década; hay interés en Fortran como lenguaje específico de dominio que apunte a IR comunes (por ejemplo, MLIR).

Acceso a los estándares y política de ISO

  • Quejas por tener que pagar por el PDF oficial de ISO; los borradores del estándar están disponibles gratuitamente y en general se consideran suficientes y prácticamente autoritativos.