Forum

Joyeux Anniversaire "FORTRAN"

yanolezard

Bonjour à toutes et à tous,

L’information a été occultée par les récentes actualités internationales :

Le 15 Octobre 2026, sa « Majesté FORTRAN » a affiché clairement ses 70 ans de passés, présents et futurs bons et loyaux services (bien que sa première version commerciale et son compilateur soient sortis en Avril 1957).

Et un second Bon Anniversaire est prévu en Avril 2027.  


Comme le puissant, indétronable, indéformable et indéboulonnable « COBOL » (indice TIOBE 10/26 position 16/20), l’oublié relatif et renaissant  langage « FORTRAN » est de retour sur les routes sinueuses des codes sources (indice TIOBE 10/26 : position 13/20), 


Pour informations relatives, les traditionnels « Python », « C », « C++ » et « Java » s’écharpent en haut du tableau entre des « ratings » de 8,41 % pour le « Fêtard » à 19,23% pour « le bicolore de rocher» 

« FORTRAN » ... Qui es-tu ?

Je suis « FORTRAN » (FORmula TRANslation) et je suis le tout premier langage de haut niveau de l’histoire de l’informatique, créé dans les années 50 par une équipe d’IBM dirigée par un certain « John Backus » ... mon « Créateur » (Prix Alan Turing en 1977). 

  • Entre 1953 et 1954 : développement d’un système de programmation automatique pour l'ordinateur « IBM 704 », pour s’affranchir du Langage Machine.

  • 20 septembre 1954 : exécution du tout premier programme fonctionnel en Fortran.

  • Novembre 1954 : Publication du rapport préliminaire des spécifications du langage.

  • 15 octobre 1956 : IBM publie le tout premier manuel de programmation Fortran, posant l’acte de naissance officiel du langage auprès de la communauté scientifique. 

  • Avril 1957 : Sortie du premier compilateur opérationnel, marquant la naissance du premier véritable langage de programmation de haut niveau.

  • Année 1966 : « FORTRAN » est le tout premier langage de programmation a obtenir une normalisation nationale et internationale par l’ANSI (ne pas confondre avec l’ANSSI).

« FORTRAN » ... Que fais-tu ? 

  • Je traduis facilement des formules mathématiques complexes en code machine ultra-rapide, pour le calcul scientifique et numérique, grâce à mes célèbres bibliothèques « LINPACK » (bibliothèque de fonctions en Fortran pour l'algèbre linéaire, et notamment la résolution numérique de systèmes d'équations linéaires, servant à classer, entre autres, les plus puissants superordinateurs mondiaux du TOP500) et « LAPACK » (fonctions pour la résolution de systèmes d'équations linéaires, le calcul de valeurs propres et les décompositions de matrices (LU, QR, SVD, Cholesky) et « LAPACK » dépend de la bibliothèque "BLAS" (Basic Linear Algebra Subprograms).

  • J’accompagne les domaines de la météorologie et de la climatologie, de la mécanique des fluides, de la physique et de l’astrophysique, de l’ingénierie automobile, de la recherche spatiale, de l’énergie et du secteur nucléaire, de la mécanique des structures, de la supervision en temps réel des systèmes industriels, de l’écriture des drivers, pilotes et autres bibliothèques temps réel dur, de tout ce qui a besoin de puissance, de rapidité foudroyante, de parallélisme à outrance.

     

  • Je suis très ami aussi avec les supercalculateurs  et les superordinateurs, pour mesurer leurs performances dans le calcul intensif et le le calcul haute performance, qui se chamaillent pour une place dans le « TOP500 » : mais pas que, car j’aime aussi les minis, les microsystèmes, l'embarqué et je m’adapte à tous les systèmes d’exploitation qu’ils soient ouverts ou captifs. 


« FORTRAN » ... Pourquoi es-tu si apprécié ?

A vrai dire, je ne me suis jamais posé cette questions. Les gens qui me considèrent et qui travaillent et m’utilisent disent que je suis : 

  • performant, car mes compilateurs génèrent du code-machine extrêmement optimisé, bien souvent nettement plus rapide que du « C » ou du « C++ » bien écrit pour des calculs matriciels (mon coeur algorithmique est de 30 à 60 fois plus rapide que celui de Python pour le traitement des matrices). 

  • évolutif, car anciennement j’étais limité par des contraintes matérielles (avec les cartes perforées et mon format fixe du Fortran 77) et au fur et à mesure, cela s’est amélioré avec la mise aux normes de mon langage (Fortran 90, 95, 2018 et maintenant 2023) qui montre que la programmation orientée objet (P.O.O), le format libre et le parallélisme intégré n’a pas de secret pour moi. 

  • multi-plateformes et multi-architectures systèmes, compilé, impératif, procédural et multi-paradigme, et que ma documentation est en permanence accessible et régulièrement mise à jour. 

« FORTRAN » ... Dans ta grande mansuétude, pourrais-tu nous montrer un exemple ? 

Avec grand plaisir, car la connaissance ne s’acquiert qu’avec le partage et avec le calcul de la « Suite de Fibonacci »

program suite_fibonacci

    implicit none    

    ! Déclaration des variables

    integer :: n, i

    integer, allocatable :: u(:)

    ! Demande à l'utilisateur le nombre de termes

    print *, "Combien de termes voulez-vous calculer (minimum 2) ?"

    read *, n

    ! Sécurité : s'assurer que « n » est valide

    if (n < 2) then

        print *, "Erreur : Le nombre de termes doit être supérieur ou égal à 2."

        stop

    end if

    ! Allocation dynamique du tableau pour stocker la suite

    allocate(u(0:n))

    ! Initialisation des premiers termes (U_0 et U_1)

    u(0) = 0

    u(1) = 1

    ! Calcul des termes suivants

    do i = 2, n

        u(i) = u(i-1) + u(i-2)

    end do

    ! Affichage des résultats

    print *, "--- Termes de la suite de Fibonacci ---"

    do i = 0, n

        print *, "U_", i, " = ", u(i)

    end do

    ! Libération de la mémoire du tableau

    deallocate(u)

end program suite_fibonacci


Il ne vous reste plus qu’à exécuter ce programme : pour compiler et lancer, vous pouvez prendre le célèbre « gfortran » de la suite « GCC ».

Comme je suis « Bon Prince » :

- Enregistrez le code dans un fichier « suite_fibonacci.f90 », ouvert préalablement dans un éditeur de texte ou un EDI (Environnement de Développement Intégré) comme « Emacs », « VisualStudio Code »

- Ouvrez un terminal (Unix/Linux/Windows/MacOS) et compilez joyeusement.

Avec le shell « Bash » :  gfortran suite_fibonacci.f90 -o fibonacci  

Puis démarrez avec la commande (toujours sous « Bash ») : ./fibonacci


Les petits plus pour bien comprendre les subtilités :

  • allocatable : permet de définir la taille du tableau "u" en fonction de la saisie de l'utilisateur.

  • u(0:n) : Fortran permet de commencer l'indexation à 0 (très pratique pour les suites mathématiques).

  • do i = 2, n : Boucle itérative équivalente au for dans d'autres langages.

« FORTRAN » ... Faut-il encore, aujourd’hui, apprendre te connaître mieux ?

J'occupe des positions très fortes :

  • sur le calcul scientifique, la simulation numérique, la science physique, le calcul haute performance (HPC : High Performance Computing), la recherche scientifique, l’ingénierie lourde.

  • en météorologie et climatologie : modélisation du climat mondial et prévisions météo complexes (utilisé par Météo-France, le "CEPMMT" pour "Centre Européen pour les Prévisions Météorologiques à Moyen Terme" ou "ECMWF" en anglais, pour "European Centre for Medium-Range Weather Forecasts"

  • en physique et astrophysique : Simulations de physique des particules, physique quantique et dynamique des galaxies.

  • en Ingénierie aérospatiale et automobile : calculs d'aérodynamique (CFD : Computational Fluid Dynamics - mécanique des fluides numérique) et simulations de crash-tests.

  • en Énergie et secteur nucléaire : modélisation du comportement des réacteurs nucléaires et simulation des réservoirs de pétrole ou de gaz.

  • en Ingénierie des structures : analyse par éléments finis (Finite Element Analysis EA) pour tester la résistance des ponts, des bâtiments et des matériaux et de simuler et prédire le comportement d'une structure ou d'un système physique soumis à des conditions réelles (efforts mécaniques, chaleur, vibrations, fluides).

  • en Monitoring et supervision de systèmes industriels, en temps réel.

  • en Bibliothèques et Drivers temps réel dur.

  • en Calculs matriciels et mathématiques pur, parallélisme massif, ...

Je possède également une vitesse d'exécution inégalée pour le calcul matriciel et mathématique pur, une gestion native et ultra-optimisée du parallélisme, et je bénéficie de milliards de lignes de code héritées (legacy) ultra-fiables qu'il serait trop coûteux et risqué de réécrire (certes pas autant que mon "vieux" pote "Cobol").

  • Et partout où la vitesse d’exécution est la clé de la réussite. 

Alors c'est vrai ... je n’attire pas les foules de développeurs, cependant, je capte l’attention des « Pythonneurs » car il faut des performances et une continuité physique.

Beaucoup de mes codes font tourner des simulations physiques cruciales (nucléaire, météo, aérospatiale) : donc, si cloud il y a , on ne cherche pas la flexibilité du cloud, mais la reproductibilité exacte des calculs au bit près.

Aujourd'hui, je dois prendre en compte aussi le chamboulement de l'IAG et des projets de migrations de mes anciens codes et compilateurs ... pour :

Une traduction assistée vers le C++ :

Le laboratoire de recherche de "Los Alamos" et les énergéticiens cherchent à migrer le Fortran obsolète (Fortran 77) vers le "C++".

Un grand énergéticien européen a récemment mené un projet avec "Mistral AI" pour convertir un simulateur de réservoir géologique en "C++"

L'enseignement clé de ce projet est que l'IA ne peut pas agir seule : elle nécessite un "harnais de test" strict piloté par des humains pour vérifier qu'aucune dérive numérique n'altère les résultats scientifiques.

La modernisation "In-Language" (Fortran ancien vers Fortran moderne) : face au coût d'une migration complète (estimée à plus de 15 millions de dollars pour un modèle climatique majeur), la tendance est plutôt à la transition vers le Fortran 2008 / 2018 (Fortran 2023 n'étant pas encore assez éprouvé pour ce genre d'activité).

Des outils basés sur l'ingénierie de modèles convertissent automatiquement le vieux code en versions modernes capables de supporter le parallélisme sur "GPU" (Graphic Processing Unit) avec "OpenMP et OpenACC".

Le couplage hybride Python-Fortran : plutôt que de migrer, les instituts météo et de recherche scientifique conservent le cœur algorithmique en Fortran (qui est 30 à 60 fois plus rapide que Python pour le traitement de matrices) et créent des interfaces Python. Cela permet aux jeunes chercheurs d'écrire des scripts en Python tout en exploitant la puissance brute du Fortran sous-jacent et de mieux le comprendre.

« FORTRAN » ... Tu es formidable et tu mérites amplement tes 70 bougies !!!

Merci .... Et avec beaucoup d'humilité, vous pouvez consulter les sites ci-dessous pour en savoir plus sur ce que je représente pour la communauté.

Votre "Serviteur" : A vot' bon coeur et encore un Joyeux et Puissant Anniversaire à ce sacré « FORTRAN ».

La plus importante plateforme "Fortran" dont j'aie eu à m'occuper pendant plusieurs années était (et est toujours) constituée d'un cluster de 256 noeuds (sous OpenVMS à la base, puis du Unbreakable Linux par la suite) pour du calcul massivement parallèle.

Je n'en ai, à ce jour, pas retrouvé de semblable ailleurs.

Pour se faire plaisir simplement :

Une machine (Raspberry PI 5) , Un BSD (Net) ou un Linux (OpenSuse),  un compilateur Fortran (gfortran) et un éditeur « Emacs » .... rien de tel pour bien commencer la journée. 

Bien cordialement,

Yanolezard.






 

Bien cordialement, Yanolezard

Au service des talents IT

Free-Work est une plateforme qui s'adresse à tous les professionnels des métiers de l'informatique.

Ses contenus et son jobboard IT sont mis à disposition 100% gratuitement pour les indépendants et les salariés du secteur.

Free-workers
Ressources
A propos
Espace recruteurs
2026 © Free-Work / AGSI SAS
Suivez-nous