Haskell, un langage de programmation fonctionnel qui monte !

Haskell, vous connaissez ? C’est un langage de programmation fonctionnel (comme ML, Ocaml) datant de 1990. Dans un langage impératif comme le C++ par exemple, on donne une séquence d’instructions qui sont exécutées l’une après l’autre. Dans un langage de programmation fonctionnel pur, vous n’indiquez pas à l’ordinateur quoi faire, mais plutôt ce que les choses sont. Ça vous titille ? De mon temps, on parlait de langage procédural (en opposition aux “Goto”), puis d’évènementiel (avec des events du type “souris-clic”), mais pas d’impératif… ou alors, je ne connaissais pas l’expression. Bon, on va parler d’Haskell, un peu, mais aussi je vais vous raconter “ma life” comme d’hab…

Si vous voulez découvrir ce langage , allez lire ce tuto sur developpez. En fait, c’est un grand tuto… c’est même la traduction d’un bouquin !

Personnellement, j’ai un peu de mal. Ça m’a beaucoup fait penser à Python dans la structuration des données. Mais je n’arrive pas à trouver la motivation pour apprendre un nième langage si je n’ai pas un besoin immédiat. Y-a quelques temps, une jeune développeuse me demandait combien de langages de programmation j’utilisais. Je lui ai dit “une trentaine”. Je devais être en dessous de la vérité, mais elle m’a répondu direct: “c‘est que tu ne dois pas bien les connaitre“. Ce qu’elle ne savait pas, c’est qu’avant mes 10 ans, j’en avais appris déjà 5 ou 6 (ASM Z80, ASM 6800, Basic Locomotive d’Asmtrad, Logo, …). Ça fait 34 ans que je code. C’est vrai que je ne les maitrise pas tous, et que certains langages ont un écosystème très vaste qui demande des années à maitriser…Après, il y en a plusieurs qui se ressemblent comme “Turbo Pascal” et “Delphi” dans la syntaxe, mais pas en utilisation. J’ai fait du C/C++/C#, Java (Applet/Servlet,Javascript), PHP, Ruby, Lua, l’assembleur x86, x64, etc. Sans compter les shells ! (bash, le csh, le powershell, et les scripts dos ça compte?). J’en perd mon latin… que je n’ai jamais appris d’ailleurs (snif).

Ça va vite au bout d’un moment… je crois que c’est comme les langues – on est souvent surpris quand un interprète connait plus de 10 langues (et dialectes quelques fois), mais chaque nouvelle langue est plus facile à maitriser. Et puis, on est passionné ou on l’est pas.

Alors apprendre l’Haskell est pour moi plus un exercice de style (que je ne ferai pas… pas envie). C’est pourtant un langage qui monte. Vers 1994, alors en formation dans le domaine du jeu vidéo, mon maitre de stage m’avait parlé de Caml. Je crois qu’on lui avait enseigné cela à l’AFPA… J’ai trouvé ça horrible… pas plus que LISP, mais je ne voyais vraiment pas pourquoi je devrais apprendre un nouveau langage de ce type… J’aurais dédié celui-ci à l’enseignement de l’informatique, mais ce n’est visiblement pas (ou plus) le cas d’Haskell.

Il a été utilisé pour réécrire le système anti-spam de Facebook Sigma. Pandoc, le logiciel de conversion de documents numériques en ligne de commande a aussi été développé en Haskell… et il y a d’autres exemples !

Bon, Haskell, le futur langage de programmation d’Epic Games ?

https://www.youtube.com/watch?v=Cw4xtmMMbXc

Pas sûr… En tous cas, si vous voyez un intérêt à ce langage, je veux bien écouter vos arguments. J’imagine qu’en IA, en traitement de chaines pour la gestion du langage naturel, pour faire un filtre bayésien antispam, etc. Il doit avoir un coté pratique. Mais pour le reste… je suis perplexe.

Ces articles pourraient aussi vous intéresser …