O Fortran é uma “língua morta”? (2022)
O status do Fortran como uma “língua morta” é controverso: embora esteja em grande parte ausente de empregos de software mainstream e do desenvolvimento de propósito geral, ele continua sendo amplamente usado e ativamente mantido em computação científica e de engenharia de alto desempenho, especialmente em áreas como dinâmica dos fluidos, modelagem climática e simulação nuclear. Comentadores observam que o Fortran moderno oferece suporte nativo poderoso para arrays numéricos e estabilidade de código de longo prazo, mas carece das bibliotecas padrão ricas, das ferramentas e do ecossistema encontrados em linguagens como Python e C++. Muitos argumentam que ele agora funciona de fato como uma linguagem específica de domínio para HPC, com novos grandes projetos migrando cada vez mais para C++ ou outras linguagens por melhor interoperabilidade e suporte a GPUs, mesmo enquanto vastos codebases em Fortran continuam sustentando infraestrutura crítica.
O Fortran é uma “língua morta”?
- Muitos argumentam que não está morto, mas é altamente nichado: muito ativo em HPC científica e de engenharia, e em grande parte ausente em outros contextos.
- Uma definição proposta de “morto” é “sem novos codebases não‑hobby”; por esse padrão, vários participantes dizem que o Fortran ainda está vivo, outros dizem que fora da computação científica ele é, na prática, morto.
- A lei de Betteridge é invocada: um título que pergunta se está morto implica “não”.
Domínios Principais e Código Legado
- Uso amplamente reportado em: modelos de clima e meteorologia, CFD, engenharia nuclear, materiais, eletromagnetismo, simulação de colisões, combustão, numerics relacionados a finanças (via BLAS/LAPACK), e muitos outros códigos de simulação.
- BLAS/LAPACK e muitas bibliotecas numéricas fundamentais foram escritas em Fortran e ainda são centrais para stacks modernos (frequentemente via wrappers em C).
- Grandes códigos legados com décadas de validação tornam reescritas arriscadas e caras; reprodutibilidade de longo prazo e saídas estáveis bit a bit importam em aeroespacial, nuclear e outros domínios de alto impacto.
Recursos da Linguagem, Pontos Fortes e Fracos
- Pontos fortes: arrays multidimensionais nativos, operações vetorizadas, números complexos, fortes otimizações de compilador, suporte a OpenMP e estabilidade de longo prazo. Alguns comparam favoravelmente a ergonomia de arrays com NumPy.
- O Fortran moderno (2003–2018/2023) adiciona muitas facilidades; slicing é suportado, e há “broadcasting” limitado via funções elementares e operações array/escalar.
- Pontos fracos: biblioteca padrão extremamente enxuta (sem rede, threads, estruturas de dados ricas integradas), tratamento de strings ruim, abstrações de alto nível escassas; muitas tarefas parecem “C sem libc”.
- Alguns dizem que a experiência geral do desenvolvedor é “terrível” em comparação com Python; outros discordam fortemente e acham o Fortran simples e agradável para numéricos.
Ferramentas, Compiladores e Ecossistema
- Vários compiladores ativos (gfortran, Intel, LLVM flang, compiladores de fornecedores); alguns compiladores comerciais e pequenos fornecedores desapareceram.
- Há reclamações sobre compiladores gratuitos com bugs e ferramentas com cara de anos 1990; outros destacam trabalho contínuo para melhorar compiladores e testes.
Empregos, Educação e Manutenibilidade
- Painéis gerais de emprego mostram quase nenhuma vaga em Fortran em comparação com linguagens mainstream; muitos empregos em Fortran estão em laboratórios de pesquisa ou empresas de engenharia especializadas e recrutam por redes acadêmicas.
- Alguns centros nacionais de HPC ainda ensinam Fortran moderno; em outros lugares, Python/C++ dominam o treinamento e novos projetos, com o Fortran sendo gradualmente descontinuado em alguns laboratórios por motivos de manutenibilidade e contratação.
GPUs e Direção Futura
- A portabilidade de códigos Fortran para aceleradores é descrita como difícil e fragmentada (CUDA Fortran, suporte parcial a OpenMP 5); isso empurra novos projetos de HPC para C++.
- Há algum otimismo de que OpenMP, memória unificada em novo hardware e o flang amadurecendo melhorem a portabilidade para aceleradores, mas o estado atual é misto.