¿Es Fortran «un lenguaje muerto»? (2022)

El estatus de Fortran como “lenguaje muerto” es discutido: aunque está en gran medida ausente en los empleos de software generalista y en el desarrollo de propósito general, sigue siendo muy usado y mantenido activamente en computación científica y de ingeniería de alto rendimiento, especialmente en áreas como dinámica de fluidos, modelado climático y simulación nuclear. Los comentaristas señalan que el Fortran moderno ofrece un soporte potente y nativo para matrices numéricas y estabilidad de código a largo plazo, pero carece de las ricas bibliotecas estándar, herramientas y ecosistema que tienen lenguajes como Python y C++. Muchos argumentan que hoy funciona de facto como un lenguaje específico de dominio para HPC, mientras que los nuevos proyectos grandes se inclinan cada vez más hacia C++ u otros lenguajes por su mejor interoperabilidad y soporte para GPU, aunque enormes codebases en Fortran siguen sosteniendo infraestructura crítica.

¿Es Fortran un “lenguaje muerto”?

  • Muchos sostienen que no está muerto, sino que es muy de nicho: muy activo en HPC científica y de ingeniería, y en gran medida ausente en otros ámbitos.
  • Una definición propuesta de “muerto” es “sin nuevas codebases no hobby”; según ese criterio, varios comentaristas dicen que Fortran sigue vivo, mientras que otros afirman que fuera de la computación científica está, en la práctica, muerto.
  • Se invoca la ley de Betteridge: un titular que pregunta si está muerto implica “no”.

Dominios principales y código heredado

  • Se reporta un uso amplio en: modelos meteorológicos y climáticos, CFD, ingeniería nuclear, materiales, electromagnetismo, simulación de choques, combustión, numerics relacionados con finanzas (vía BLAS/LAPACK) y muchos otros códigos de simulación.
  • BLAS/LAPACK y muchas bibliotecas numéricas fundamentales se escribieron en Fortran y siguen siendo centrales en las pilas modernas (a menudo mediante envoltorios en C).
  • Los grandes códigos heredados, validados durante décadas, hacen que las reescrituras sean arriesgadas y costosas; la reproducibilidad a largo plazo y las salidas estables bit a bit importan en aeroespacial, nuclear y otros dominios de alto impacto.

Características del lenguaje, fortalezas y debilidades

  • Fortalezas: matrices multidimensionales nativas, operaciones vectorizadas, números complejos, fuertes optimizaciones del compilador, soporte para OpenMP y estabilidad a largo plazo. Algunos comparan favorablemente la ergonomía de arrays con NumPy.
  • Fortran moderno (2003–2018/2023) añade muchas comodidades; admite slicing y un “broadcasting” limitado mediante funciones elementales y operaciones array/escalar.
  • Debilidades: biblioteca estándar extremadamente escasa (sin red integrada, hilos ni estructuras de datos ricas), mala gestión de cadenas, abstracciones de nivel superior escasas; muchas tareas se sienten como “C sin libc”.
  • Algunos dicen que la experiencia global del desarrollador es “horrible” comparada con Python; otros discrepan fuertemente y encuentran Fortran simple y agradable para numerics.

Herramientas, compiladores y ecosistema

  • Varios compiladores activos (gfortran, Intel, LLVM flang, compiladores de proveedores); algunos compiladores comerciales y pequeños proveedores han desaparecido.
  • Hay quejas sobre compiladores gratuitos con errores y herramientas al estilo de los años 90; otros destacan el trabajo en curso para mejorar compiladores y pruebas.

Empleo, educación y mantenibilidad

  • Los portales generales de empleo muestran casi ningún puesto de Fortran en comparación con lenguajes convencionales; muchos trabajos de Fortran están en laboratorios de investigación o empresas de ingeniería especializadas y reclutan a través de redes académicas.
  • Algunos centros nacionales de HPC todavía enseñan Fortran moderno; en otros lugares, Python/C++ dominan la formación y los proyectos nuevos, y Fortran se va eliminando gradualmente en algunos laboratorios por motivos de mantenibilidad y contratación.

GPUs y dirección futura

  • Portar códigos Fortran a aceleradores se describe como difícil y fragmentado (CUDA Fortran, soporte parcial de OpenMP 5); esto empuja a los nuevos proyectos HPC hacia C++.
  • Hay cierto optimismo de que OpenMP, la memoria unificada en hardware nuevo y un flang más maduro mejoren la portabilidad a aceleradores, pero el estado actual es mixto.