Bonjour,

alors vous allez vous dire, c'est qui ce troll qui pose une question genre Fortran vs C ?!

Non, non, ma question est sérieuse et réellement motivée.

Je vous explique. Je me lance dans un projet de développement d'appli scientifique pour m'éclater à développer et disposer d'une bonne boîte à outil. Mais quand je me dis je me lance, j'en suis au tout début : choix du langage.
Suivront architecture du projet, suivi de développement, mise en place d'une arborescence, choix des librairies, ...

J'ai réussi au fil des jours à dégrossir mon envie :

- nécessité de performance : genre, créer une matrice identité de 1000 par 1000 doit pas poser de problèmes de lenteurs avec des instructions simples.

- nécessité de portabilité : le source doit être compilable assez facilement sur n'importe quelle plateforme (j'éviterai bien sûr les instructions non portables)

- monolangage : le code doit comporter exclusivement un seul langage. Le tout sera éventuellement encadré par une belle GUI dans un autre langage mais dans un premier temps, ce n'est pas le propos.

- prise en compte possible dans le code de technologies comme la parallélisation, les protocoles de soumissions MPI, le passage en 64 bits...

L'idée finale (bien qu'à peine ébauchée...) serait d'offrir à un utilisateur plus matheux que codeur une série de sources lourdement validées sur les plans mathématique, algorithmique et intégration, qu'il n'aurait plus qu'à assembler comme des LEGOS. Au final, à l'expression d'un problème, il obtiendrait la réponse sous forme d'un unique exécutable qu'il aurait construit/compilé lui-même.

Bien sûr, je vais pas coder ça en trois jours, ce sera plutôt un projet sur plusieurs années qui viendra s'enrichir. Mais le jour où j'ai besoin d'un truc, je pourrais y aller les yeux fermés.

En gros, imaginez DAKOTA (ici). Voilà, je veux refaire DAKOTA (en mieux bien sûr !!)

Alors ce dernier est codé en C++. Mais le C++ me gène, car il n'autorise pas les opérations vectorielles sur les tableaux comme le Fortran, ce qui me semble précieux. Ceci dit, on m'a dit que le C/C++ battait à plate couture le Fortran en terme de performance s'il était bien manié.

Alors qu'en pensez vous ?

Merci !

PS : critiques, conseils et points de vues extérieurs bienvenus, mais les réactions épidermiques un peu moins (genre "le C++ c'est le mieuuuu")