Note préalable : je ne connais quasimment rien en programmation, tout ce que je dis ici est totalement subjectif, probablement incomplet, mais sans aucune véléité guerrière.
Citation
Basile STARYNKEVITCH
J'ai travaillé plus d'un an à temps plein au CEA à comparer les différents langages de scripts (pour piloter des calculs scientifiques), et avec plusieurs mesures et inspection détaillée des interprètes je suis arrivé à cette conclusion (de plus, le ramasse-miettes par comptage de référence de Python est inefficace et peu robuste).
D'un autre côté, qu'un langage dont le développement est soutenu par le CEA s'en sorte mieux dans les tests menés au CEA... :-p
Bon, j'arrête la mauvaise foi... après avoir pas mal recherché sur Ocaml, il ressort effectivement que côté efficacité il joue dans la même cour que le C. La syntaxe est sympa, le compilateur facile à installer (enfin, ce serait plus sympa s'il y avait une variable type "DESTDIR" tout de même... ), et la détection des erreurs est assez explicite pour qu'on ne cherche pas 50.000 ans où ça pèche.
Donc niveau "j'ai le plus gros benchmark", je pense qu'il est beaucoup mieux placé que python (pas étonnant d'un côté puisque -- si je ne m'abuse -- il permet une compilation en langage natif), sauf à compter sur un apport massif de choses comme psyco. Maintenant, je mettrais tout de même quelques bémols.
En premier, lieu Ocaml est visiblement pensé pour la programmation fonctionnelle. Donc si on vient du shell, c'est un changement culturel auquel il faut s'adapter, ce qui peut augmenter l'investissement en temps nécessaire.
En deuxième lieu, circonstantce agravante du premier point, la documentation d'Ocaml est tout de même peu étendue. Il y a quantité de documentation sur Python en toutes langues, mais très peu de choses sur Ocaml et quand il y en a quasi-uniquement en anglais (en plus la syntaxe Ocaml a visiblement continué à évoluer, ce qui fait que certaines docs doivent être prises avec précaution).
Vous me direz que l'anglais est la langue de l'informaticien, et que c'est donc un faux grief... certes, mais ça signifie aussi une chose : il n'y a pas de communauté d'utilisateurs Ocaml, même dans son pays natal. Et là àmha on touche au gros point noir : vous trouverez Python n'importe où et Ocaml nulle part. Python est beaucoup mieux implanté qu'Ocaml, et pour preuve, cherchez donc des programmes en ocaml ? allez citons-en... 5 ! mldonkey, Coq, unisson, hevea, et... le cinquième, il faut le chercher.
Si j'avais une seule différence à retenir entre Ocaml et Python, elle serait là. Pas vraiment au niveau des capacités des langages, puisque je ne peux avoir qu'une analyse de seconde main, mais sur la politique de développement de chacun. Dès le départ, Python c'est voulu ouvert et séduisant pour les programmateurs, car ils ont -- àmha encore -- compris l'ampleur du problème : persuader quelqu'un d'investir du temps pour découvrir un nouveau langage et refaire ce qu'il sait déjà faire avec celui-ci.
À l'inverse Ocaml semble avoir jouer la carte grandes écoles &cie, en se moquant complètement de renforcer sa base d'utilisateurs. Résultat : comme dit, il n'y a quasiment pas de soft en Ocaml, pas de base documentaire digne de ce nom, et là où n'importe quelle distribution proposera python, il faudra probablement se mettre en quête d'Ocaml.
Si je voulais être ironique, je dirais que c'est une stratégie à la française : ils ont investi dans un langage dont je ne pense franchement pas qu'ils aient à rougir, mais à vouloir dédier l'excellence aux gens excellents (oui, oui, c'est un peu ironique...), ils se retrouvent à faire la danse de la pluie en attendant qu'un industriel veuille bien s'emparer de leur merveille. Sur le papier Ocaml surpasse donc Python, mais côté support communautaire et dynamisme à long terme, il me paraît bien mal parti s'il continue comme ça (surtout que pour les grosses applis et l'embarqué, il y a déjà des choses comme ADA). Et je dis ça vraiment avec frustration et déception, parce que le peu que j'ai goûté des deux (Ocaml et Python), je ne vois pas vraiment de raisons autres de lâcher plus Ocaml que Python.
En conclusion, réfléchissez certes aux performances, mais aussi au support que vous pouvez obtenir et à la disponibilité des ressources documentaires.
Autrement, pour donner une utilité à ce long post, les deux langages (ie compilateurs et bibliothèques de base) sont libres et FSF-orthodoxes. + d'infos -> [
caml.inria.fr] et [
python.org]