Fortran est un langage de programmation pensé dans les années 50 pour le calcul scientifique. Il continue à être largement utilisé dans le domaine de la recherche scientifique pour le calcul intensif. Contrairement à des langages plus évolués, le déroulement des opérations individuelles en machine reste relativement contrôlable dans le langage, ce qui permet d'écrire des codes relativement efficaces en termes de calcul. Le Fortran a beaucoup évolué ces dernières années avec l'apparition de la norme Fortran 90.
Selon Michael Wirth, l'une des raisons pour lesquelles Fortran fonctionne encore est la longévité. Il est beaucoup plus facile de s'appuyer sur quelque chose qui a été développé à l'origine en Fortran (qui est rétrocompatible), plutôt que de partir de zéro. « Les gens font toujours croire que c'est facile, mais de nombreux projets de réingénierie ont échoué parce qu'on n'avait pas compris le fonctionnement du logiciel d'origine », déclare Wirth.
Le Fortran est aussi exceptionnellement bon pour les mathématiques, et les modèles climatiques ne sont rien d'autre que du traitement de données et des mathématiques.
« Je n'aime pas quand les gens essaient d'expliquer que "Python serait meilleur", à cause d'une idée farfelue selon laquelle sa syntaxe est meilleure que celle de Fortran. Bien sûr, c'est plus succinct, mais c'est purement pour le bénéfice du programmeur, pas de la machine », explique-t-il. « Et qui peut dire que le typage explicite n'ajoute pas un certain niveau de clarté, ce qui est extrêmement important dans les programmes qui effectuent des calculs. »
Caractéristiques de Fortran
- Calcul haute performance: le langage Fortran a été conçu dès le départ pour des applications de calcul intensif en sciences et ingénierie. Des compilateurs et des bibliothèques matures et éprouvés vous permettent d’écrire rapidement un code exploitant au mieux la puissance de votre matériel ;
- Typage statique fort : le Fortran utilise un typage statique fort, ce qui permet au compilateur de détecter immédiatement de nombreuses erreurs de programmation. Cela lui permet également de générer un code binaire performant ;
- Facile à apprendre et à utiliser : le Fortran a un vocabulaire relativement restreint et est étonnamment facile à apprendre et à utiliser. L’écriture de la plupart des opérations mathématiques et arithmétiques sur des tableaux de grande taille se fait naturellement, comme sur le papier ;
- Multiparadigme : le Fortran permet d’écrire du code dans le style qui correspond le mieux au problème : impératif, procédural, matriciel, orienté objet ou fonctionnel ;
- Parallèle : le Fortran est d’office un langage de programmation parallèle utilisant une syntaxe intuitive de type tableau pour communiquer les données entre processeurs. Il est possible d'exécuter quasiment le même code que ce soit sur un seul processeur, sur un système multicœur à mémoire partagée, sur un système HPC à mémoire distribuée, ou un système de type cloud. Les concepts de co-tableaux, équipes, événements et sous-routines collectives permettent d’utiliser différents modèles de programmation parallèle adaptés au problème de programmeur.
Voici, quelques caractéristiques mises en avant par Wirth pour justifier que Fortran est une puissance scientifique.
- Performances : Fortran est rapide, dans certains cas plus rapide que C, et la modélisation climatique, comme une grande partie de l'informatique scientifique, est une question de vitesse ;
- Parallélisme : la performance nécessite le parallélisme, et Fortran le faisait avant même que les autres langages ne sachent ce que c'était ;
- Réutilisation : la rétrocompatibilité signifie que les bibliothèques existantes peuvent être facilement réutilisées ;
- Tableaux : Fortran traite les tableaux avec le respect qui leur est dû. Il prend en charge les tableaux multidimensionnels, le découpage, la réduction, le remodelage et de nombreuses optimisations pour les calculs basés sur les tableaux, comme la vectorisation ;
- Longévité : les modèles climatiques et autres ne peuvent pas être mis en œuvre dans des langages qui ne sont pas (i) rétrocompatibles et (ii) en constante évolution. Si vous écrivez du code en Fortran aujourd'hui, il est probable qu'il fonctionnera encore dans 20 ou 30 ans ;
- Effort : savez-vous combien d'efforts il faudrait fournir pour réorganiser un modèle ? Les nouveaux langages posent problème ;
- MPI : l'interface de passage de messages (MPI) est la passerelle vers le calcul haute performance, et Fortran la gère très bien.
« Fortran a été conçu pour le calcul scientifique. Bien sûr Fortran est vieux, mais Unix aussi, et C aussi. Ce n'est pas parce que des langages comme Julia sont plus récents qu'ils sont meilleurs. Tout le monde pensait que le C++ serait une sorte de sauveur du codage, et regardez comment cela a tourné. Les gens pensent parfois que si quelque chose est écrit dans un langage comme R, alors c'est du pur R... mais ne comprennent pas que R lui-même n'est pas du pur R. R est lui-même composé de code composé de R, C, et Fortran », conclu-t-il.
Source : Michael Wirt's Bolg
Et vous ?
Partagez-vous l’avis de Michael Wirt au sujet du langage Fortran ?
Avez-vous déjà utilisé ce langage ? Quelles sont ses forces, quelles sont ses faiblesses ?
Comparé au langage Julia, lequel préférez-vous
Voir aussi :
La version 1.6 du langage Julia est disponible, elle apporte une réduction de la latence des compilateurs et supprime les recompilations inutiles
Go 1.16 est disponible et apporte la prise en charge de l'architecture ARM 64 bits sur macOS, ainsi que l'intégration des fichiers statiques et des arborescences de fichiers dans l'exécutable final
C++ vs Rust : une comparaison pratique de la vitesse de compilation et de test des deux langages de programmation, par Matthew Glazar, ingénieur en génie logiciel