Les langages fonctionnels comme Haskell (mais aussi Objective Caml, Erlang, Lisp et d'autres) sont souvent perçus comme des langages d'académiciens, des jouets pour les chercheurs en informatique. En somme, ceux qui n'ont jamais ou peu essayé ne pensent pas qu'il est possible de réaliser des applications industrielles, à grande échelle, avec de tels langages. Pourquoi ? Car ils sortent des sentiers battus ; la façon de penser est assez différente, la façon d'écrire son code l'est aussi. Est-ce pour autant un défaut ?
Real World Haskell démontre que non, et brillamment. En effet, le titre devrait vous mettre la puce à l'oreille. Il ne s'agit pas d'un ouvrage qui ne serait qu'une transposition de la norme de ce langage, présentant successivement règles syntaxiques et petits morceaux de codes très éloignés d'une utilisation concrète du langage. Ici il s'agit de présenter un langage avec des situations concrètes, du code qui est utile, et j'en passe. Cet ouvrage a réussi son pari sur 2 niveaux.
- Bien que connaissant déjà la programmation fonctionnelle avec Objective Caml, j'ai fortement apprécié la façon qu'a cet ouvrage de la présenter. Il s'agit comme dit plus haut de changer de façon de concevoir ses logiciels. Vous ne pourrez pas modifier de variables, vous n'aurez plus d'objets, toutefois vous aurez à votre disposition des moyens très intelligents et pratiques de déclarer et utiliser des types de données. Les fonctions joueront un nouveau rôle à vos yeux, du fait qu'elles sont de première classe (elles deviennent comme n'importe quelles variables dans un langage classique). Bref, c'est un nouveau monde, et ce livre vous y introduit brillamment.
- Je ne connaissais que très peu Haskell, et ce livre m'a fait faire un bond de géant. On est introduit petit à petit, en douceur, avec des exemples de code, à ce langage qui possède des caractéristiques étonnantes. Vous aurez probablement un peu de mal avec l'évaluation paresseuse avant qu'elle vous soit expliquée, et lutterez peut-être un peu avec les monades avant les deux chapitres qui leur sont dédiées, toutefois une fois ce livre terminé, vous vous sentirez prêts à créer des applications industrielles (qu'il s'agisse d'application réseau, système, utilitaires, graphiques, ...) avec ce langage. L'ouvrage réussit brillamment à exposer un grand nombre des particularités de Haskell sans pour autant noyer le lecteur.
Pour terminer, je trouve qu'il est important de préciser que Haskell possède une forte communauté, et cela transparaît dans le livre. Les auteurs n'ont pas oublié de mentionner la grande base de bibliothèques (Hackage) qui centralise plus de 1000 bibliothèques pour réaliser des tâches diverses et variées, du réseau jusqu'à la programmation système, de la 3D jusqu'à la construction de compilateurs, etc. Un tel dynamisme se devait d'être présenté, et c'est chose faite. Il y a finalement pas grand chose (même rien, a priori) qui n'est pas présenté dans ce livre mais dont vous auriez besoin pour réaliser une application industrielle en Haskell. Je conclurais donc en disant que si vous êtes intéressés par cette façon différente de programmer, cet ouvrage est probablement LE livre à avoir.
Partager