Non. Tu peux très bien en haskell mettre des effets de bord partout.
Suffit de tout coder dans la monade IO. C'est comme en POO : tu peux tout faire dans une seule classe et envoyer balader ces classes, ces interfaces et tout ça. Je peux « coder en C » aussi bien en Haskell qu'en Java.
Ce qui garde les effets de bords à un strict minimum, c'est le programmeur. J'en met là où j'en veux, quelque soit le langage.
Quand à la soupe (et haskell), j'aime et je trouve ça bon. En revanche, je n'aime pas qu'on dise « c'est grâce aux monades » quand ça n'a pas grand chose à voir... Mon code est quasi identique en OCaml et en Haskell, pourtant, en ML, je peux mettre des effets de bord partout...
La « pureté » n'a raison d'être qu'au niveau des types, dans la formalisation mathématique. En pratique, ça change que dalle. Ah si, ça te prend 3 fois plus de temps quand tu veux tracer ton code (bon, t'as des moyens, mais ça vaut pas un printf placé ça et là...)
[^] # Re: Quelques petites rectifications et une question
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal Go : Un nouveau langage chez Google. Évalué à 2.
Suffit de tout coder dans la monade IO. C'est comme en POO : tu peux tout faire dans une seule classe et envoyer balader ces classes, ces interfaces et tout ça. Je peux « coder en C » aussi bien en Haskell qu'en Java.
Ce qui garde les effets de bords à un strict minimum, c'est le programmeur. J'en met là où j'en veux, quelque soit le langage.
Quand à la soupe (et haskell), j'aime et je trouve ça bon. En revanche, je n'aime pas qu'on dise « c'est grâce aux monades » quand ça n'a pas grand chose à voir... Mon code est quasi identique en OCaml et en Haskell, pourtant, en ML, je peux mettre des effets de bord partout...
La « pureté » n'a raison d'être qu'au niveau des types, dans la formalisation mathématique. En pratique, ça change que dalle. Ah si, ça te prend 3 fois plus de temps quand tu veux tracer ton code (bon, t'as des moyens, mais ça vaut pas un printf placé ça et là...)