Quelles solutions les scientifiques utilisent-ils pour travailler ?
Langages compilés : C, C++, Fortran, etc.
Avantages :
- Très grande efficacité. Compilateurs très optimisés. Pour des calculs “brute force”, c’est difficile de battre la vitesse d’éxécution des codes programmés avec ces langages.
- Des librairies scientifiques très optimisées ont été écrites pour ces langages. Ex : blas (manipulation de tableaux de nombres).
Inconvénients :
- Utilisation lourde : pas d’interactivité dans le développement (étape de compilation peut être pénible). Syntaxe “verbeuse” (&, ::, }}, ; etc.). Gestion de la mémoire délicate en C. Ce sont des langages difficiles à manier pour le non-informaticien.
Langages de scripts : Matlab
Avantages :
- collection très riche de librairies avec de nombreux algorithmes, dans des domaines très variés. Exécution rapide car les librairies sont souvent écrites dans un langage compilé.
- environnement de développement très agréable : aide complète et bien organisée, éditeur intégré, etc.
- support commercial disponible
Inconvénients :
- langage de base assez pauvre, qui peut se révéler limitant pour des utilisations avancées.
- prix élevé
Autres langages de scripts : Scilab, Octave, Igor, R, IDL, etc.
- Avantages : libres/gratuits/moins chers que Matlab. Certaines fonctionnalités peuvent être très développées (statistiques dans R, figures pour Igor, etc.).
- Inconvénients : moins d’algorithmes disponibles que dans Matlab, et langage pas plus évolué.
Logiciels spécialisés pour une utilisation. Ex : Gnuplot ou xmgrace pour tracer des courbes. Ces logiciels sont très puissants, par contre leur utilisation est limitée au seul plot. C’est dommage d’avoir à apprendre un logiciel rien que pour ça.
Et Python ?
Avantages :
- Librairies très riches de calcul scientifique (un peu moins de choses que dans Matlab cependant).
- Langage très bien pensé permettant d’écrire du code très lisible, et très bien structuré : on “code ce qu’on pense”.
- Librairies pour d’autres applications que le calcul scientifique (gestion d’un serveur web, d’un port série, etc.).
- Logiciel libre, largement distribué avec une communauté dynamique d’utilisateurs.
Inconvénients :
- environnement de développement un peu moins agréable que par exemple Matlab (c’est un peu plus “pour les geeks”).
- les librairies scientifiques ne proposent pas l’intégralité des toolboxes de Matlab (en contrepartie, certaines parties de ces librairies peuvent être plus complètes ou mieux faites).