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.