Ton exemple est trivial. Oui, l'aritmétique, comme n'importe quoi d'autre en Lisp, est en notation préfixe. Dans des langages plus mainstream, on entre-mêle le tout. Les opérateurs mathématiques sont infix, les fonctions sont préfixes et on a des opérateurs postfix (++ et -- entre autre). On a donc besoin d'apprendre un tas de règle de précédence. C'est pas intuitif que le > va se faire avant ton & (ou vice versa, je m'en souviens jamais.)
Je t'invite à relire le thread: l'absence de modules qui est expliquée par l'absence d'une tonne de programmeurs qui est expliquée par le fait que les êtres humains ont peur du changement.Bah, si les langages fonctionnelles sont si bien que ça, pourquoi les développeurs s'embettent à faire du C++ pas sur qui leur coutera a coup sur des SIGSEGV (si ils n'utilisent pas de ramasse miettes) ?
C'est pas parce que C++ est nécessairement meilleur ou pire que Haskell qu'il est plus utilisé, c'est qu'il y a pas eu une masse critique du côté des langages fonctionnels encore.
Regarde Ruby comme exemple, il y a trois ans, personne en parlait, juste quelques geeks qui aiment explorer de nouveaux langages. Puis, Rails apparaît, les programmeurs y voient une meilleure façon de créer des applications et des services web, et commence à l'utiliser et Ruby par la même occasion. Et aujourd'hui, on trouve des gens qui utilisent Ruby partout.
Si Haskell ou O'Caml avaient leur "killer app", quelque chose que les programmeurs veulent absolument avoir, mais qui n'est pas tout à fait possible dans leur langage actuel, ils vont essayer et il va y en avoir qui vont coller.
La question "Si X est si bon, pourquoi personne s'en sert" est pas une bonne question, c'est un argument par popularité.
Partager