Je pense qu'il est logique de fournir une vue quelque peu alternative et de clarifier la question.
FORTRAN contre Fortran
Tout d'abord, il faut distinguer l'ancien FORTRAN de le nouveau Fortran, où, par convention, le nom de l'ancienne langue est généralement écrit en majuscules. L'ancien FORTRAN (jusqu'à FORTRAN 77) est en effet toujours utilisé à cause de tonnes de code hérité, mais le nouveau Fortran (à partir de Fortran 90) est utilisé principalement parce que c'est un langage très élégant et simple mais puissant et efficacement implémenté pour le calcul des nombres .
DSL contre GPL en général
Notez spécifiquement que même le Fortran moderne, à mon avis, est un langage spécifique à un domaine (DSL) et c'est là que réside sa faiblesse relative par rapport à certains langages à usage général (GPL) comme le C ++ mentionné: Fortran est spécialisé pour une tâche particulière (calcul des nombres) et pourrait ne pas convenir à certaines tâches connexes (par exemple, l'analyse automatisée des résultats finaux, leur représentation graphique, etc.)
Les langages à usage général, tels que C ++, vous offrent plus de flexibilité (dans les fonctionnalités du langage, dans les bibliothèques tierces, etc.) afin que vous puissiez résoudre non seulement la tâche principale (calcul des nombres) mais aussi la tâche associée en utilisant le même langage . Si, cependant, vous choisissez Fortran pour le calcul des nombres, vous devez souvent utiliser un autre langage (par exemple Python) pour ces tâches connexes. Pensez-y comme à l'utilisation de deux DSL différents: un pour la tâche principale, un autre pour les tâches connexes. Bien sûr, vous pouvez également utiliser Python avec C ++, mais un développeur C ++ expérimenté (ce que vous êtes censé être si vous choisissez d'y faire un calcul des nombres) ne profiterait pas nécessairement de l'utilisation d'un autre langage au lieu de sa bête C ++.
Fortran contre C ++ en particulier
Tout cela est quelque peu subjectif, mais de toute façon, voici mes 5 cents. Dans l'ensemble, Fortran est plus simple que C ++, mais (et parce que) C ++ est plus riche en fonctionnalités . En gros, c'est parce que Fortran est DSL, alors que C ++ est GPL. Et comme je l'ai dit, c'est subjectif dans une certaine mesure, et en plus, la complexité est l'une des choses les plus complexes de l'univers, nous pourrions donc lancer un débat à ce sujet, mais bon, juste un mot: les modèles et la discussion principe terminé. Les modèles font du C ++ la bête, mais tout a son prix.
Notez que je n'ai pas dit que C ++ est plus puissant, car, à mon avis, «plus riche en fonctionnalités» ne veut pas toujours dire » plus puissant". Cela dépend tout d'abord si vous avez réellement besoin de ces fonctionnalités supplémentaires en premier lieu ou non? Sérieusement, avez-vous besoin du niveau de générosité (et de métaprogrammation) que les modèles C ++ offrent pour le calcul des nombres? Pas nécessairement. Et si c'est le cas, C ++ ne serait pas plus puissant que Fortran, bien qu'il soit toujours plus riche en fonctionnalités.
Les modèles ne sont pas la seule fonctionnalité de C ++ que Fortran ne possède pas. Les exceptions et la bibliothèque standard - sont deux autres fonctionnalités remarquables que Fortran n'a pas. Encore une fois, il est peu probable que vous profitiez grandement de ces fonctionnalités pour le calcul des nombres. Mais certaines autres tâches peuvent être très utiles, donc C ++ en tant que GPL les inclut alors que Fortran en tant que DSL pour le calcul des nombres ne le fait pas. Pensez à Fortran comme à un "langage de valise" juste pour le calcul des nombres et au C ++ comme à un "langage de tronc" pour tout.
Il y a aussi une fonctionnalité intéressante du langage Fortran que C ++ ne pouvait toujours pas rattraper: les modules. Je veux dire, de vrais modules , et pas d'anciennes machines de préprocesseur qui m'irritent plus que tout le reste.