pour erlang je dirais :
- plus de vingt ans d'utilisation, c'est testé et ça a fait ses preuves
- dans le domaine du networking ça gère aussi bien que certaines appli en C++ niveau performance. dsl pas de sources, je l'ai lu je crois dans "programmer en erlang", PEARSON
- de la tail recursion infinie, en opposition aux loop de scala*
- le framework OTP et les arbres de supervision : le must pour la fault-tolerance
- des 'atom' (ou 'symbols')
- des acteurs au centre de la logique, je ne sais pas ce qu'il en est avec Scala
- des framework web florissants
- du hot code swapping mais je crois quela JVM le permet aussi désormais
* tu me demandes ce que ça "apporte", ce qui n'est pas synonyme de "mieux"
Pour haskell je n'ai aucune expérience mais de ce que j'en ai vu ça a l'air très très fun à coder. le système de types est génial, il rend obsolète la POO à mon sens.
du currying de fou. par exemple, la fonction (take x y) récupère les x premiers éléments d'une liste y. au lieu du code suivant
tu peux simplement écrire
Comme take attend une liste en second paramètre, la fonction cinq_premiers ne peut prendre qu'une seule liste aussi. Comme en scala le typage est statique mais tu peux curryfier toute fonction sans devoir le préciser dans la déclaration des paramètres. Donc généralement le code est plus court (tout comme en erlang).
tu peux curryfier les opérateurs : pour faire une map (map ma_lambda ma_liste) tu peux écrire
comme je l'ai dit avant tu simplifies en
et tu currifies l'opérateur (*)
violà quelques trucs que j'ai vu récemment sur le bouquin que Maks a donné
- plus de vingt ans d'utilisation, c'est testé et ça a fait ses preuves
- dans le domaine du networking ça gère aussi bien que certaines appli en C++ niveau performance. dsl pas de sources, je l'ai lu je crois dans "programmer en erlang", PEARSON
- de la tail recursion infinie, en opposition aux loop de scala*
- le framework OTP et les arbres de supervision : le must pour la fault-tolerance
- des 'atom' (ou 'symbols')
- des acteurs au centre de la logique, je ne sais pas ce qu'il en est avec Scala
- des framework web florissants
- du hot code swapping mais je crois quela JVM le permet aussi désormais
* tu me demandes ce que ça "apporte", ce qui n'est pas synonyme de "mieux"
Pour haskell je n'ai aucune expérience mais de ce que j'en ai vu ça a l'air très très fun à coder. le système de types est génial, il rend obsolète la POO à mon sens.
du currying de fou. par exemple, la fonction (take x y) récupère les x premiers éléments d'une liste y. au lieu du code suivant
cinq_premiers liste = take 5 liste
tu peux simplement écrire
cinq_premiers = take 5
Comme take attend une liste en second paramètre, la fonction cinq_premiers ne peut prendre qu'une seule liste aussi. Comme en scala le typage est statique mais tu peux curryfier toute fonction sans devoir le préciser dans la déclaration des paramètres. Donc généralement le code est plus court (tout comme en erlang).
tu peux curryfier les opérateurs : pour faire une map (map ma_lambda ma_liste) tu peux écrire
doubles liste = map (\x -> x*2) liste
comme je l'ai dit avant tu simplifies en
doubles = map (\x -> x*2)
et tu currifies l'opérateur (*)
doubles = map (*2)
violà quelques trucs que j'ai vu récemment sur le bouquin que Maks a donné