Fortran joue aux échecs avec la Mort depuis des décennies (j’aurais aussi pu me référer au film Le Viager avec Michel Serrault :-)). Ces trois dernières années, il a été présent 23 mois dans le Top 20 de l’indice TIOBE, atteignant même la 11e place en juillet et septembre 2023. Simple bruit dans un classement controversé ou regain d’activité d’une communauté habituellement trop discrète, à vous de juger. Voyons ce qu’il s’est passé dans le monde du Fortran depuis notre dépêche n°4 d’octobre 2022.
Sommaire
- Fortran 2023
- Le 3 décembre, jour dionysiaque
- Sur le front des compilateurs
- Communauté Fortran-lang
- Autres projets
- Le mot de la fin : l’antique oracle
Fortran 2023
La norme ISO/IEC 1539-1:2023 a été publiée le 17 novembre. Le document de John Reid The new features of Fortran 2023 résume ses apports. La version officielle de cette norme ISO est payante, mais le comité de normalisation met toujours à disposition le PDF de son « document d’interprétation », très proche de la version finale de la norme. Reste bien sûr à attendre que les compilateurs intègrent progressivement ces nouveautés. Le compilateur Intel inclut entre autres déjà le mécanisme de réduction ajouté aux boucles parallélisables do concurrent
ainsi que les fonctions trigonométriques fonctionnant en degrés.
La 6e édition du Metcalf, prévue pour le 7 décembre, comporte deux nouveaux chapitres sur cette norme (et une couverture orange) :
- Mr Michael Metcalf, John Reid, Mr Malcolm Cohen, et Reinhold Bader. Modern Fortran Explained: Incorporating Fortran 2023. 6e édition. Oxford, New York: Oxford University Press, 2023. ISBN : 9780198876588
Le 3 décembre, jour dionysiaque
Cette quatrième norme du XXIe siècle est sortie à peu de choses près 70 ans après que John Backus (1924-2007) a proposé à son supérieur de créer un langage de calcul simple et rapide avec son compilateur optimiseur, pour s’affranchir du langage machine. La date exacte est inconnue, lui-même ne s’en souvenait pas, mais son anniversaire étant le 3 décembre, célébrons à la fois les 99 ans du père du langage et les 70 ans du lancement du projet FORTRAN !
Ce facteur économique a été l’une des principales motivations qui m’ont amené à proposer le projet Fortran dans une lettre adressée à mon supérieur, Cuthbert Hurd, à la fin de 1953 (la date exacte n’est pas connue, mais d’autres faits suggèrent que décembre 1953 est une date probable). Je pense que la nécessité économique d’un système comme Fortran est l’une des raisons pour lesquelles IBM et mes supérieurs successifs, Hurd, Charles DeCarlo et John McPherson, ont répondu à nos besoins en constante augmentation au cours des cinq années suivantes sans jamais nous demander de projeter ou de justifier ces besoins dans un budget formel.
(Traduction DeepL pour l’essentiel)Backus, J. « The history of Fortran I, II, and III ». IEEE Annals of the History of Computing 20, nᵒ 4 (décembre 1998): 68‑78. https://doi.org/10.1109/85.728232.
Sur le front des compilateurs
Avis de décès
Deux compilateurs Fortran ont disparu : le Absoft en septembre 2022, puis le Lahey en décembre. Inutile de chercher le site web de ces entreprises quadra ou quinquagénaires, tout a disparu. À ma connaissance, les codes source de ces compilateurs propriétaires n’ont pas été libérés… Ces disparitions pourraient être une conséquence de la mise à disposition gratuite des compilateurs Intel depuis décembre 2020.
Parmi les compilateurs opérationnels
En décembre 2022, après cinq ans d’efforts, le compilateur Intel ifx basé sur LLVM a atteint la parité avec son prédécesseur ifort, en implémentant intégralement la norme Fortran 2018. La version actuelle est la 2024.0. Intel a annoncé qu’ifort ne sera en conséquence plus maintenu à partir d’octobre 2024, y compris pour les macOS>13. Pas de chance pour les fans du mac, Intel ne prévoit pas de leur fournir ifx… À noter également qu’ifx ne gérera pas les architectures 32 bits.
GFortran, compilateur Fortran de la GCC, en est à la version 13.2. La page GFortran du Fortran Wiki a été entièrement mise à jour. Elle présente en particulier des informations pour les personnes qui voudraient contribuer au développement du compilateur.
En gestation
Il faut compter au minimum cinq ans de travail pour écrire un nouveau compilateur Fortran (la dernière norme fait 674 pages). Le développement du nouveau Flang pour LLVM, soutenu en particulier par NVIDIA, continue. Le rapport de liaison présenté au J3 en octobre indique qu’il peut « compiler et exécuter correctement des programmes Fortran 77 (passe la suite de tests FCVS), la quasi-totalité des programmes Fortran 95 et de nombreux programmes qui utilisent les fonctionnalités modernes de Fortran 2003+. »
Quant au compilateur LFortran, Il a été décidé qu’il passerait en version bêta quand il serait capable de compiler dix bibliothèques Fortran matures. Il en est pour l’instant à 4/10 : il peut compiler par exemple MINPACK, une bibliothèque permettant de résoudre des équations non linéaires et des problèmes de moindres carrés non linéaires.
Communauté Fortran-lang
La communauté Fortran-lang poursuit sa croissance avec plus de 1300 utilisateurs inscrits sur son Fortran Discourse depuis le 5 mai 2020. La dépêche d’octobre 2022 parlait de « plus de 850 utilisateurs inscrits ». Vous en croiserez sûrement un certain nombre à l'Advent of Code 2023, du 1er au 25 décembre !
Médias
Un article en français qui résume l’histoire du langage, les apports des normes successives, les projets de la communauté, vient d’être publié dans le Bulletin 1024 de la Société Informatique de France :
- Vincent Magnin, José Alves, Antoine Arnoud, Arjen Markus, Michele Esposito Marzino, « Fortran… et puis quoi encore ? », Bulletin 1024, n°22, p. 143–161, novembre 2023, DOI:10.48556/SIF.1024.22.143, licence CC BY-NC-ND 4.0.
Il est en cours de traduction dans la langue de Shakespeare (ou plutôt Backus).
Le podcast Code for Thought du 5 septembre 2023 est intitulé « Hello Fortran! » Quatre développeurs sont interrogés pendant les 40 minutes de l’émission : Thomas Clune (NASA, US), Wim Vanderbauwhede (Uni. Glasgow, UK), Milan Curcic (Uni. of Miami, US) et Ondrej Certik (GSI Technologies, US). Les deux derniers sont les fondateurs de Fortran-lang.
Financement
Fin 2022, l’organisme allemand Sovereign Tech Fund du ministère fédéral de l’économie et du climat a accordé l’équivalent de trois temps pleins pour travailler six mois sur le projet d’un dépôt centralisé pour le gestionnaire de paquets fpm, ainsi que sur le compilateur LFortran.
La candidature de Fortran à l’organisation américaine à but non lucratif NumFOCUS a été acceptée. NumFOCUS est une organisation caritative publique 501(c)(3) aux États-Unis qui promeut les pratiques ouvertes dans la recherche, les données et le calcul scientifique en sponsorisant les projets open source et en organisant des programmes éducatifs.
Enfin, trois étudiants ont participé au Google Summer of Code 2023 :
- amélioration de LFortran pour aller vers une compilation de SciPy,
- optimisation dans le projet neural-fortran, un cadriciel de deep learning,
- développement de http-client, une bibliothèque fpm permettant d’effectuer des requêtes HTTP avec une API conviviale. Elle dépend des bibliothèques stdlib et fortran-curl.
Projets
Le tutoriel Python Fortran Rosetta Stone publié par Ondřej Čertík en 2012 sur le site https://www.fortran90.org/ a été importé et révisé sur Fortran-lang : https://fortran-lang.org/fr/learn/rosetta_stone/
Comme son nom l’indique, il donne les correspondances entre syntaxes Python et Fortran, en particulier pour le calcul scientifique.
Le gestionnaire de paquets Fortran et système de construction fpm est disponible en version 0.9 depuis juin 2023. Il est même désormais disponible sur PyPi. Il peut être également utilisé pour compiler des projets C et C++. Il peut gérer des dépôts de paquets locaux ou distants, l’objectif étant à terme de créer un dépôt officiel. Enfin, l'intégration avec OpenMP permet non seulement de compiler de façon parallèle un projet mais également de gérer des projets utilisant OpenMP.
La bibliothèque standard stdlib est sortie en version 0.3 au mois d’août et peut désormais être utilisée comme une dépendance fpm.
Autres projets
FortLS, une implémentation du Language Server Protocol (LSP) pour Fortran, est disponible en version v3.0.0rc1. Parmi les éditeurs de code pris en charge, on peut citer Visual Studio Code, Atom, Sublime Text, (Neo)Vim, et Emacs.
La communauté Fortran explore les modèles de langage, avec par exemple le projet fastGPT qui est un modèle GPT-2 : « L’utilisation d’un langage comme Fortran, orienté vers les calculs de tableaux les plus rapides possibles, permet d’écrire un code très performant, mais toujours lisible ». Il y a également un modèle de langage LLaMA2. Et le projet ForOpenAI permet d’accéder à l’API de ChatGPT.
Le travail de modernisation des bibliothèques FORTRAN se poursuit, avec par exemple FITPACK pour l’ajustement de courbes et de surfaces, désormais traduit en Fortran moderne et disponible sous forme de paquet fpm.
Le générateur FORD (FORtran Documentation) est disponible en version 7.0.
La communauté fait feu de tout bois et tenir à jour la liste des codes Fortran disponibles sur GitHub est un travail de fond. Mais citons encore quelques projets récents :
- Fortran-regex est un port de la bibliothèque tiny-regex-c pour les expressions régulières.
- Dans le domaine du retrocomputing, fc8 est un interpréteur CHIP-8 (un langage des années 70 pour faciliter l’écriture de jeux vidéo 8 bits).
- ForColormap est une bibliothèque pour gérer les « cartes thermiques » pour la visualisation scientifique.
- FSparse offre une API orientée objet pour les matrices creuses.
- rklib est une nouvelle bibliothèque Runge-Kutta pour les équations différentielles du premier ordre.
- feq-parse permet d’évaluer une fonction mathématique stockée dans une chaîne de caractères.
Le mot de la fin : l’antique oracle
Dans un de ses derniers entretiens en 2006 pour le Computer History Museum (voir la vidéo), Backus répond :
Interviewer : « Le monde est-il meilleur grâce à tous les logiciels qui ont été écrits au cours de votre vie, ou non ? »
Backus : « Eh bien, en termes humains, probablement pas. Parce que cela nous éloigne de plus en plus des affaires humaines. Mais pour ce qui est de l’économie et du bien-être, ça a fait beaucoup de bien. C’est donc un bilan mitigé.
[…]
Mais je ne vous envie pas, j’en ai peur. Je pense que nous devenons de plus en plus technologiques et de moins en moins orientés vers l'humain. »(Traduction en français basée sur DeepL)
Ou si vous préférez l’original :
Interviewer: “Is the world a better place because of all the software that’s been written in your lifetime, or not?”
Backus: “Well, in human terms, probably not. Because it just takes us further and further away from human affairs. But as far as economic, and welfare, it’s done a lot of good. So it’s a mixed bag. […] But I don’t envy you, I’m afraid. I think that we’re getting more and more technological and less and less human oriented.”
Aller plus loin
- Norme Fortran 2023 (document d'interprétation du comité J3) (32 clics)
- The new features of Fortran 2023 (exposé de John Reid) (21 clics)
- Fortran-lang.org (54 clics)
- fpm (Fortran Package Manager) (30 clics)
- Indice TIOBE (36 clics)
# Grammaire
Posté par jcr83 . Évalué à 2.
s/ait proposé/a proposé/
[^] # Re: Grammaire
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Corrigé, merci.
# Modern Fortran Explained - sixième édition
Posté par Tonton Th (Mastodon) . Évalué à 5.
Tous frais : Mr Michael Metcalf, Dr John Reid, Mr Malcolm Cohen, and Dr Reinhold Bader vous proposent une nouvelle édition de cet ouvrage :
https://global.oup.com/academic/product/modern-fortran-explained-9780198876588
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.