Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/08/2007, à 09:32

no_spleen

Quel langage pour les scientifiques?

Bonjour à tous,
Je viens de terminer mon travail de fin d'études, dans le domaine de la modélisation des transferts de chaleur. Pour coder mes algorithmes de résolution (par différences finies) j'ai utilisé le FORTRAN 90 compilé avec gfortran.
Je vais me lancer dans un doctorat dans le même domaine, et je me demande s'il ne serait pas judicieux de changer de langage.
Que conseilleriez vous?
Au début de mon travail, j'ai fait un test en executant le même code en fortran et sur octave. Fortran a mit une dizaine de secondes, octave une demi-heure! Cela a été la raison de mon choix.
A mon sens, les principales qualités que je recherche sont
-RAPIDITE de calcul (primordial)
-Gestion simple des matrices (ex: en fortran pour faire une addition ou multiplication de matrice sil suffit de faire A+B ou A*B)
-Possibilité de créer facilement une interface graphique dans la phase finale du projet pour entrer les données
-Possibilité de faire afficher des graphiques dans cette interface (evolution de température,...) et d'enregistrer ces graphiques
-Possibilité de créer des executables fonctionnant sur windows, et de gérer les formats de fichier provenant de windows
-Et une idée que j'aimerai incorporer, c'est une interface intéractive pour l'import de fichiers de données, comme quand on importe un fichier texte dans calc.
-Enfin, il faudrait un langage libre, car j'aimerai réaliser ma thèse avec une thèse annexe intitulée "Les logiciels libres sont une bonne alternative pour la recherche scientifique"
Merci de vos conseils

Dernière modification par no_spleen (Le 24/08/2007, à 09:33)

Hors ligne

#2 Le 24/08/2007, à 09:38

pixi-pix

Re : Quel langage pour les scientifiques?

Je travaille dans un centre de recherche de EDF, perso je ne fais pas de recherche je dois coder des aplication et faire de l'admin reseau mais ils condent tous en fortran donc je pensse que tu as fais le bon choix depuis le debut apres je suis ne suis pas un expret en cacluls scientifique.

Si non essai en C java, l'avantage de java et ca portabilite linux/unix/win apres temps de calcul je sais pas, et pour les matrices je sais pas, php aussi marche bien pareil je sais pas si pour les calculs ca marche super bien.

le premier qui me dit que le php c'est pour les sites web je le powne ^^ enfin je previen avant que l'on me dise "php ?! mais il veut pas faire un site web", ben oui monssieur mais c'est un langague interprete on peut meme faire des calcul avec smile et si tu veux des graphique utilise gnuplote, y a meme le ruby si tu es interesser essaie de voir le langague qui te convien le plus.

Je suis desoler de ne pas pouvoir etre plus precis dans ma reponse je suppose que connaisais deja tout ces langague mais si je peut aider t'en faire connaitre de nouveau c'est qu'un plus enfin j'espere

Bonne journee wink

Hors ligne

#3 Le 24/08/2007, à 09:50

no_spleen

Re : Quel langage pour les scientifiques?

Merci pour cette réponse rapide!
En effet le fortran possède de nombreux avantages pour le calcul scientifique, mais je reste sur ma faim pour plusieurs raisons :
1) Dans le cadre de ma thèse annexe, fortran est-il libre? J'avoue que je ne me suis pas encore vraiment renseigné mais comme j'ai entendu parlé du développement d'une version libre (fortress je crois) j'imagine que fortran ne l'est pas
2) Pour la gestion des interfaces graphiques j'ai bien appercu quelques pistes pendant mon TFE mais rien qui m'aie semblé abordable pour le non informaticien que je suis.
Je vais me renseigné sur le ruby, dont j'avais déja entendu parlé mais sans plus
Merci et bonne journée!

Hors ligne

#4 Le 24/08/2007, à 10:11

pixi-pix

Hors ligne

#5 Le 24/08/2007, à 10:59

littleblackdog

Re : Quel langage pour les scientifiques?

ben, à ce qu'il parait, C/C++ sont les langages parmi les plus rapides ... t'as plein de librairies qui tournent dessus, en particulier des librairies d'interfaces graphiques (Qt, wxWidgets..), c'est vachement connu, évidemment libre, et ça se compile aussi sous windows, modulo quelques modifications de code.

après, ça peut être relou d'apprendre un nouveau langage ... hmm

Dernière modification par littleblackdog (Le 24/08/2007, à 11:00)

Hors ligne

#6 Le 24/08/2007, à 11:02

pixi-pix

Re : Quel langage pour les scientifiques?

ça peut être relou d'apprendre un nouveau langage

ca reste toujours dans la meme logique hmm

Hors ligne

#7 Le 24/08/2007, à 11:26

JoelS

Re : Quel langage pour les scientifiques?

pixi-pix a écrit :

ça peut être relou d'apprendre un nouveau langage

ca reste toujours dans la meme logique hmm

Non pas vraiment.

Pour coder des programmes efficaces dans un langage donné, c'est à dire des programmes qui arrivent aux résultats voulus tout en optimisant le ou les critéres choisis (portabilité, rapidité, empreinte mémoire, stockage de données, ouverture, maintenabilité, ...,fait-ton-choix), il faut déjà avoir pratiqué ce langage un certain temps pour être capable de déterminer si cet aspect du langage ou cet autre aspect apporte quelque chose par rapport au but cherché. Donc si tu as suffisament d'expérience dans un langage évolué (F90 par exemple) c'est pas la peine d'aller en chercher un autre.

Ceci dit, c'est toujours intéressant de voir ce qui se fait ailleurs, mais il faut être très prudent avant d'en tirer des conclusions.

Y'a eu déjà un post plus ou moins à ce sujet (quels langages pour ...?) ici: http://forum.ubuntu-fr.org/viewtopic.php?id=105398, tu pourras avoir peut-être des infos complémentaires.

Hors ligne

#8 Le 24/08/2007, à 12:01

no_spleen

Re : Quel langage pour les scientifiques?

Je ne peux pas vraiment dire que je sois un pro du F90, mes compétences se limitent à l'écriture de calculs, d'importation et d'exportation de fichiers. Dans le cadre d'un travail de fin d'études (6 mois) je n'ai pas eu le temps d'essayer de comprendre toutes les subtitilités du fortran. Néanmoins il me semble (peut être à tort) limité sur plusieurs aspects, notamment la gestion d'interfaces graphiques.
Dès lors, puisque dans le cadre d'un doc j'aurai plus de temps, j'aimerais m'investir dans la compréhension d'un langage plus riche en possibilités, d'ou mon post dans ce forum. Le C++ me semble bien, puisque j'ai vu qu'il existe plusieurs livres du type "analyse numérique avec exemple en C++". Au fait, quelle est la différence entre le C et le C++?
Et le python, rentre-t-il dans mes exigences?

Hors ligne

#9 Le 24/08/2007, à 12:06

gene69

Re : Quel langage pour les scientifiques?

je suis étonné que personne ne te propose de passer à python. http://fr.wikipedia.org/wiki/Python_%28langage%29

Tes équations sont-elles à ce point longues? ce qui est important c'est un langage qui se développe rapidement plutot qu'un langage rapide. De toute façon selon ta façon de coder dans le même langage tu peux avoir des différences de 1 à 100.

la question de la licence du langage... étrange. Ce qui va te coûter c'est le compilateur et l'OS qui supporte de celui ci. Après, viennent les librairies que tu vas utiliser: libre ou pas. Le code que tu écris est rien qu'à toi et généralement c'est ça qui compte.

Après le C++ c'est bien mais relativement complexe. J'ai bien peur que le c++ sans personne pour te conseiller soit une très mauvaise idée.


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#10 Le 24/08/2007, à 12:10

aleph

Re : Quel langage pour les scientifiques?

> no_spleen
Scientifique (cad non informatitien), mais quand même une très grande expérience en programmation (simulations en mécanique quantiques, par ex.), je pense cerner très clairement tes besoins (ton cahier de charge).

Je dois m'absenter et interrompre maintenant. Plutôt que de bâcler une réponse vite faite, je te propos de jeter un oeil sur ce forum en fin d'après-midi /début de soirée.

#11 Le 24/08/2007, à 12:18

aleph

Re : Quel langage pour les scientifiques?

En attendant, tu peux jeter une oeil ici http://spinecho.ze.cx/ . C'est assez orienté "scientifique".

#12 Le 24/08/2007, à 12:24

gene69

Re : Quel langage pour les scientifiques?

Le C++ c'est du "C with class".

C'est a dire que tu peux utiliser tu C++ comme du C ou du C++ comme un langage objet. Les mots clefs changent presque pas de sens d'un langage à l'autre.

En C++ tu introduits des concepts tels que le polymorphisme, l'héritage et la généricité... des choses assez lourdes à apprendre.

Le langage objet permet d'associer les fonctions (méthodes) associées aux données. L'avantage c'est que ça rend très facile le developpement des interfaces graphiques et certaines formes de calculs. Par exemple tu peux définir un objet neurone, lui attribuer une fonction sygmoïde. Après tu les multiplies, tu obtiens un réseau neuronal smile

Le python permet de faire de la poo, mais je ne connais pas assez ce langage pour t'en parler doctement. La seule chose que je peux te dire c'est qu'il porte sur lui la réputation d'être simple.

évite le C, parce que le C réputé rapide ne connait pas le type matrice. Le C++ non plus mais il existe des classes matrices dispo sur le web qui definissent les matrices. Définir des matrices proprement avec les surcharges d'opérateurs c'est un boulot assez considérable wink vu que le nombre d'opérations et d'algo disponible sur les matrices est assez considérables: de la somme aux valeurs propres

Dernière modification par gene69 (Le 24/08/2007, à 12:26)


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#13 Le 24/08/2007, à 12:30

no_spleen

Re : Quel langage pour les scientifiques?

aleph :  Merci beaucoup! J'attend impatiemment tes impression! Je suis exactement dans le même cas, ingénieur, avec une formation minimale en informatique, je cherche a être efficace.

Gene69 : Oui mes équations sont longues, systèmes d'équations aux dérivées partielles, avec une procédure d'optimisation des paramètres, c'est très lourd! Pour la licence j'aimerai pouvoir démontrer, si c'est possible, que les logiciels libres permettent tous les aspects de la recherche scientifique, de l'OS à mettre sur le pc jusqu'au traitement de texte pour écrire la thèse en passant par le langage de calcul et la création de graphiques. Maintenant je suis loin de comprendre toutes les subtilités des licences, et peut-être que ma question n'a aucun sens pour ce qui est des langages de programmation...

Dernière modification par no_spleen (Le 24/08/2007, à 12:31)

Hors ligne

#15 Le 24/08/2007, à 13:53

Luc Hermitte

Re : Quel langage pour les scientifiques?

Le C++ est je pense la seule alternative valable au Fortran pour du calcul numérique hautes performances (HP).

Le Fortran a l'avantage de l'âge et de la profusion de bibliothèques.

Comparé au C, le C++ a l'avantage de la simplicité d'utilisation (si si). Pour écrire tes multiplications en C tu devras reposer sur des API SAXPIiennes à la BLAS. En C++, pour les opérations de base (et pas pour les inversions) tu auras accès à une syntaxe plus "intuitive" car plus proche de la syntaxe mathématique. En C++ (comme en C), je te conseillerai de te reposer sur des bibliothèques de calcul pour réaliser toutes les opérations basiques (et même les inversions), et en particulier pour gérer ta mémoire. Sinon tu vas souffrir.

Après, Java et autres langagages interprétés ne me parraissent absolument pas adaptés pour des problème d'expressivité (lourdeur pour exprimer tes calculs) et aussi de perfs. A la limite, tu peux t'interfacer avec eux pour le côté IHM -- le C++ permet des choses, mais pas toujours le plus simplement de ce côté là.

Toutes fois, les langages des outils comme scilab ou matlab sont pas mal du tout. Ce sont d'ailleurs des outils forts pratiques pour le prototypage de tes calculs.


Sinon, il me semble bien que le DoD (?) a lancé un grand "concours" (comme celui qui a donné naissance à l'Ada à l'époque) pour concevoir un langage adapté au calcul numérique HP. Diverses boites participent, dont Sun. J'avais pu lire quelques abstracts/slides du langage qu'ils préparent, cela m'avait paru intéressant.


PS: C++ n'est absolument pas du C avec des classes. Quand on ne se perd pas à faire des trucs inutilement compliqués (mauvais encadrement/enseignement), c'est au moins aussi simple de faire une même chose, sinon beaucoup plus simple. Ce qui n'empêche pas que le langage est infiment plus complexe. Cf d'autres forums plus spécialisés pour des comparaisons.

PPS: quand un langage est normalisé (C, C++), parler de "libre" n'est pas pertinent. Ce sont des compilos qui vont être libres ou payant, ou juste open-source, ou ... Et également des bilbiothèques...
Après il y a des langages très propriétaires avec un seul outil qui va savoir les traiter. L'outil pouvant lui-même être propriétaire (matlab) ou non (scilab).
Et il y a aussi des langages dont l'évolution est gérée par des commités moins ISO (ex. Java)
etc etc.

#16 Le 24/08/2007, à 14:55

pixi-pix

Re : Quel langage pour les scientifiques?

je sais pas si vous etes au courant mais il y a le langague D

Hors ligne

#17 Le 24/08/2007, à 15:03

Hiéroglyphe

Re : Quel langage pour les scientifiques?

Et OCaml ? Si tu cherches l'efficacité, il est juste derrière C en terme de vitesse.
http://fr.wikipedia.org/wiki/Ocaml

Hors ligne

#18 Le 24/08/2007, à 15:24

toufalk

Re : Quel langage pour les scientifiques?

Moi, je dirais Scilab.
Le logiciel est libre.
C'est fait pour les scientifiques.
Pour lui, toutes les variables sont des matrices, donc pas trop à se casser la tête avec ça.
Pas mal de bibliothèques (il me semble).

Par contre, niveau rapidité, j'en sais rien...

Hors ligne

#19 Le 24/08/2007, à 18:43

carella

Re : Quel langage pour les scientifiques?

Eiffel bien sur !

un langage simple et clair (pas de ligne des code cryptiques comme dans C et tous ses clones)
qui s'appuie sur un nombre impressionnant de "vraies" bibliothèques
dont EiffelMath
le seul langage implémentant véritablement tous les concepts objet

et LE PRINCIPAL : il comporte un mécanisme de spécification intégré sous forme de pré et post condition pour chaque routine et des invariants de classe (Conception par contrats) [EDIT]
Toutes les bibliothèques sont clairement spécifiées de cette manière

portable sur Windows Unix Linux MacOS VMS
[EDIT] : interfaçable avec C C++ Java C# ...... intégré à .NET
sous licence GPL

www.eiffel.com

[EDIT] www.eiffelroom.com

Dernière modification par carella (Le 24/08/2007, à 20:26)

Hors ligne

#20 Le 24/08/2007, à 20:24

no_spleen

Re : Quel langage pour les scientifiques?

il comporte un mécanisme de spécification intégré sous forme de pré et post condition pour chaque routine et des invariants de classe.
Toutes les bibliothèques sont clairement spécifiées de cette manière

Je ne comprend rien a ce que tu racontes smile je ne suis pas informaticien!!!!
Cependant, si je veux faire publier mes recherches, je crois que je dois rester dans les langages "courants", tels que fortran, C++ ou autre. Un langage utilisé par quelques centaines de personnes ne ferait pas très sérieux, enfin je pense!
En tout cas je vous remercie de vos très nombreuses remarques, cela me donne matière à réfléchir....

Hors ligne

#21 Le 24/08/2007, à 20:42

aleph

Re : Quel langage pour les scientifiques?

Scientifique (c.a.d non informaticien), mais quand même une très grande expérience en programmation (simulations en mécanique quantique ou logiciel de fonctionnement de spectromètre, par ex.), je pense cerner assez bien ta situation.

Les outils informatiques.

Python et sa quantité phénoménale de modules (extensions) est certainement un très bon choix. Interfaces graphiques, modules mathématiques, traçage de données, modules pour créer un fichier Excel, même sans avoir MS Office, bases de données, ...  Je ne dirais pas que tout y est, mais il est bien difficile de ne pas trouver son bonheur.

Python est un langage interprété qui tourne à peu près sur tout ce qui existe. Pour être précis, il est possible d'avoir Python sur tout ce qui a un compilateur C.

J'insiste beaucoup sur un point. Python n'est pas seulement un langage informatique permettant de faire une tâche comme du calcul, c'est aussi une excellente "colle" entre les différents modules externes qui eux sont développés dans un langage plus approprié. Par ex, le module NumPy, un librairie mathématique (algèbre linéaire, FFT et touti quanti), n'est qu'une interface vers le module LAPACK (ce qui pour un connaisseur de FORTRAN) devrait être assez parlant). Les modules pour l'interface graphique sont souvent en C ou C++.

Le calcul proprement dit.

Il est évident que Python ne va pas remplacer FORTRAN. Mais sans connaître exactement tes besoins, plusieurs approches sont possibles.
- Tu peux faire exécuter ton "travail FORTRAN" par du code Python (envoi de commandes OS) tout simplement.
La création temporaire d'un fichier de données d'entrée et l'extraction des données de sortie de ton job FORTRAN se fera sans aucun problème. Python est irréprochable dans ce domaine.
- Tu peux éventuellement essayer de programmer ton boulot FORTRAN en Python. Cela ne sera pas aussi performant, mais les résultats seront certainement bien meilleurs que tu peux l'imaginer. Si tu a jeté un coup d'oeil à mon site (et pourquoi pas essayé quelques applications), l'application wese permet par ex. d'effectuer une transfomation de Fourrier de ~60000 points complexes en une quinzaine  de s (PII à 600 MHz), l'affichage étant la partie la plus lente. Cela peut être trop long, mais aussi humainement supportable.
Cette approche présente aussi l'avantage de la portabilité de l'application entre plateformes.
- Je sais, mais n'est aucune expérience en ce domaine qu'il existe des modules Python qui font directement l'interface en Python et FORTRAN et/ou C, par ex. appel direct d'une SUBROUTINE ou fonction. (v. google)
- Oui, il y a des modules qui permettent de faire A+B ou A*B où A et B sont des matrices. C'est même l'âme du fonctionnement de Python, langage fortement typé, sans donner d'explications).
- Et probablement d'autres possibilités.

L'aspect pratique.

Python et tous ses modules (les gros et importants) sont disponibles sous toutes les plateformes, les *x, Windows, BSD, OSX ou même Solaris. Ton script Python sera le même sur toutes les plateformes, par contre les modules d'extension seront différents sur chaque plateforme. Par ex. NumPy est disponible pour *x, Windows, OSX, mais toi en tant qu'utilisateur tu ne verras et ne sera confronté qu'à son module d'interface Python identique sous toutes les plateformes puisqu'il sera en Python.
Note: s'il est possible de créer une forme d'exécutable sous Windows ou OSX.

L'aspect humain.

Ayant moi-même été étudiant, doctorant, post-doctorant et tout le tralala. Il ne faut pas oublier que l'informatique n'est qu'un outil et non une fin en soi, même si l'on passe beaucoup de temps à la programmation. Plus on a du travail informatique prémaché, mieux c'est. C'est surtout avec cette expérience que je propose - aujourd'hui - Python.

L'apprentissage de Python ne devrait pas poser trop de problèmes pour qui sait déjà programmer. Le gros point fort de Python tient surtout au fait que, une fois que tu maîtrises Python, tu es à même d'utiliser ses modules via leurs interfaces. Reste quand même la compréhension de ce que font ces modules.

Je ne veux surtout pas faire du prosélytisme pour Python, je dirais que face à ce choix stratégique, Python n'est pas un mauvais cheval. Je suis tombé dedans il y a un dizaine d'années et ne l'ai jamais regretté. Ce n'est plus mon boulot aujourd'hui, mais en amateur je continue à jouer avec Python et même plus.

D'un autre côté, il faut aussi tenir compte de l'environnement de travail. Il a des instituts de recherches plutôt Mac, Windows ou *x. C'est généralement un b* hétéroclite. Tel département utilise plutôt FORTRAN et tel autre, (de l'autre côté de la rue !) C++. Si là où tu bosses, tu est le seul à "faire du Python" quand tous les autres utilisent Forth. Tu vois comment...

J'ai aussi l'expérience du vécu et sais que les programmes informatiques, c'est comme "La Rose", ils ne vivent que l'espace d'une thèse.

L'interface graphique pour Python.

Un petit mot à ce sujet. Chacun a ses préférences et ses arguments. Je les connais à peu près toutes et me permets de tirer quelques caractéristiques. Des complètes et multiplateformes, il n'y en a que deux pyQt (basé sur Qt) et wxPython (basé sur wxWidgets). Elles ont chacune des avantages et des inconvénients. Ma préférence, uniquement pour des raisons historiques et d'usage, va vers wxPython. Il semblerait que la popularité, du moins du côté du logiciel libre, penche du côté de wxPython. Dans les liens que je donnerais ci-dessous, l'utilisation de wxPython est très présente. (Je sais, il existe pyGTK).

Une caractéristique de Python.

Python étant un langage de scripts, il dispose d'un mode console déjà existant. Il est possible de faire faire n'importe quoi à partir de cette console. Cela pourrait, selon ton travail/projet, être très utile.
Tu as peut-être vu sur mon site, un module en wxPython, psigraph, extension de psi, permettant, de tracer des données interactivement via une console Python. Ceci n'est qu'un exemple, mais montre ce qu'il est possible de faire. Il est aussi possible de faire l'inverse, intégrer un mode console, dans une application.

Petit commentaire personnel (pléonasme).

"""-Enfin, il faudrait un langage libre, car j'aimerai réaliser ma thèse avec une thèse annexe intitulée "Les logiciels libres sont une bonne alternative pour la recherche scientifique" """

Je comprends et c'est fort honorable. Mais un peu de pragmatisme ne fait pas de mal non plus. Si tu interfaces un appareillage scientifique avec un carte NI, tu prends ce que le fabricant t'offre. Dans le monde de la "molécule", les outils de dessin sont quasiment inexistants, les visualisateurs de protéine sont assez rares.


Ce n'est qu'un point de vue, il y en d'autres. En espérant avoir donné un bref aperçu global.

http://python.org/ Fouille bien tout le site, tu tomberas toujours sur les sites de modules externes et autres projets utilisant Python ou dédiés à Python. Tu pourrais même tomber sur mon site !)

Quelques liens plus directs (avant goût de ce que l'on peu trouver via le site Python):
http://www.scipy.org/ (wxPython est visible sur la page d'acceuil)
http://numpy.scipy.org/
http://www.pythonware.com/products/pil/
http://matplotlib.sourceforge.net/
http://wxpython.org/
http://spinecho.ze.cx/ (un peu de pub)

Bien du plaisir.

(Vite écrit et vite relu, avec l'espoir de n'avoir pas trop laisser trop d'horreurs orthographiques.)

#22 Le 25/08/2007, à 08:31

jb_causeries

Re : Quel langage pour les scientifiques?

Difficile d'être plus riche que aleph. Effectivement, je pense que python est un bon choix. Dans le même esprit, Ruby est aussi intéressant.

Plusieurs points sont à prendre en compte dans ton travail :

* Bien qu'elle existe toujours (et qu'elle existera encore longtemps) la différence en temps d'exécution entre les programmes compilé (C,C++,Fortran,...) et les programmes interprétés (Python, Perl, Ruby,...) se réduit de plus en plus. De plus, elle est à pondérer en fonction du temps de développement. En effet, si tu prend 10 minutes pour écrire un programme en Python qui va mettre une seconde à s'exécuter et 3 heures pour écrire le même programme en C qui va mettre 1/10 de seconde à s'exécuter tu as gagné du temps en Python ! Cette comparaison est à discuter en fonction du nombre d'appel de ta fonction (c'est sur que si tu appelles 10 millions de fois ta fonction, tu fait la chasse à la micro seconde...)

* il faut prendre en compte l'histoire des langages. Si l'on a créé des nouveaux langages c'est pour se délivrer des contraintes des anciens. Attention tout n'est pas à jeter dans le C, mais il est bien plus facile d'écrire un programme en Python, Ruby,... qu'en C (par exemple, la manipulation de fichier, l'allocation dynamique de mémoire...). Écrire un gros programme en C (ce qui risque d'être ton cas) est une galère pour un non informaticien. Les problèmes de fuite de mémoires apparaissent vite et son très dur à corriger.

* Avant de choisir un langage faire un tour complet de tous tes besoins : manipulation de fichiers (quels formats : texte, image...), gestion d'interface graphique (quelles plateformes), opérations scientifiques (matrices,...) et regarde s'il existe des bibliothèques libres qui font le boulot. En thèse (j'en ai fait une il n'y a pas si longtemps) on a toujours tendance à réinventer la roue...

* Si tes calculs sont très long (simulations,...) tu va surement faire tourner une bécane la nuit, qu'elle est finit en 5 heures ou en 8 heures, tu t'en fiches... Donc travailler avec un interprété n'est pas préjudiciable.

* Pour le pratiquer, le milieu scientifique est plein de barbes blanches qui ne connaissent que C/C++ et Fortran, c'est a nous les plus jeunes de secouer les dehanbulateur et de leur montrer que de nouveaux langages existent et qu'ils peuvent intéressant. Par exemple, en biologie, Perl est très utilisé pour traiter les séquences génétique (bien que je ne connaisse pas du tout le domaine...), je pense qu'écrire les même programme en C serait une vraie punition !

* Ma seule expérience dans le domaine m'a fait utiliser Java (!!!). Le bilan est mitigé :
** Pas forcement facile pour un non-informaticien
** De très nombreuses bibliothèques,
** Multiplateforme (par nature),
** Interfaces graphiques intégrés,
** Assez rapide (les progrès sont immense depuis Java 1.2, [troll]les personnes qui critiquent Java pour sa lenteur ne l'ont pas utilisé depuis longtemps[/troll]

Je pense que nous sommes un certains nombre sur ce forum a être intéressé par la question, le débat n'est pas clos et des retour d'expériences sont toujours intéressant.

Et pour finir (jeune padawan), être thésard te ferra connaitre des moments de grande déception et des moments de grand plaisir, n'en soit pas surpris, ne te démoralise pas !

Bon courage


http://www.causeries-numeriques.fr

Hors ligne

#23 Le 25/08/2007, à 10:25

no_spleen

Re : Quel langage pour les scientifiques?

Merci pour ces conseils très fouillés et pertinents. Après la lecture de vos posts et quelques visites sur les sites proposés par aleph, je suis convaincu des grandes possibilités de python. La possibilité si nécessaire de pouvoir faire tourner des subroutines fortran ne me laisse plus de place pour le doute, je vais passer un peu de temps sur le python!

Je vais certainement, quand j'en saurai en peu plus, faire des tests de performances avec des algo +- complexes entre le fortran et le python, pour voir si je ne peux même pas me passer des subroutines fortran. Je vous ferai part des résultats!

Encore merci pour ces conseils! Ma thèse commence dans deux mois, les festivités ne font que commencer...

Hors ligne

#24 Le 25/08/2007, à 11:58

aleph

Re : Quel langage pour les scientifiques?

Mon petit doigt m'a dit que "python call subroutine" sur Google renvoie 165000 entrées.

La poisse,  encore des modules Python...