Haskell, un langage de programmation fonctionnel qui monte !

Haskell, vous con­nais­sez ? C’est un lan­gage de pro­gram­ma­tion fonc­tion­nel (comme ML, Ocaml) datant de 1990. Dans un lan­gage impératif comme le C++ par exem­ple, on donne une séquence d’in­struc­tions qui sont exé­cutées l’une après l’autre. Dans un lan­gage de pro­gram­ma­tion fonc­tion­nel pur, vous n’indiquez pas à l’or­di­na­teur quoi faire, mais plutôt ce que les choses sont. Ça vous tit­ille ? De mon temps, on par­lait de lan­gage procé­dur­al (en oppo­si­tion aux “Goto”), puis d’évène­men­tiel (avec des events du type “souris-clic”), mais pas d’im­pératif… ou alors, je ne con­nais­sais pas l’ex­pres­sion. Bon, on va par­ler d’Haskell, un peu, mais aus­si je vais vous racon­ter “ma life” comme d’hab…

Si vous voulez décou­vrir ce lan­gage , allez lire ce tuto sur devel­oppez. En fait, c’est un grand tuto… c’est même la tra­duc­tion d’un bouquin !

Per­son­nelle­ment, j’ai un peu de mal. Ça m’a beau­coup fait penser à Python dans la struc­tura­tion des don­nées. Mais je n’ar­rive pas à trou­ver la moti­va­tion pour appren­dre un nième lan­gage si je n’ai pas un besoin immé­di­at. Y‑a quelques temps, une jeune développeuse me demandait com­bi­en de lan­gages de pro­gram­ma­tion j’u­til­i­sais. Je lui ai dit “une trentaine”. Je devais être en dessous de la vérité, mais elle m’a répon­du direct: “c’est que tu ne dois pas bien les con­naitre”. Ce qu’elle ne savait pas, c’est qu’a­vant mes 10 ans, j’en avais appris déjà 5 ou 6 (ASM Z80, ASM 6800, Basic Loco­mo­tive d’Asm­trad, Logo, …). Ça fait 34 ans que je code. C’est vrai que je ne les maitrise pas tous, et que cer­tains lan­gages ont un écosys­tème très vaste qui demande des années à maitriser…Après, il y en a plusieurs qui se ressem­blent comme “Tur­bo Pas­cal” et “Del­phi” dans la syn­taxe, mais pas en util­i­sa­tion. J’ai fait du C/C++/C#, Java (Applet/Servlet,Javascript), PHP, Ruby, Lua, l’assem­bleur x86, x64, etc. Sans compter les shells ! (bash, le csh, le pow­er­shell, 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 sou­vent sur­pris quand un inter­prète con­nait plus de 10 langues (et dialectes quelques fois), mais chaque nou­velle langue est plus facile à maitris­er. Et puis, on est pas­sion­né ou on l’est pas.

Alors appren­dre l’Haskell est pour moi plus un exer­ci­ce de style (que je ne ferai pas… pas envie). C’est pour­tant un lan­gage qui monte. Vers 1994, alors en for­ma­tion dans le domaine du jeu vidéo, mon maitre de stage m’avait par­lé de Caml. Je crois qu’on lui avait enseigné cela à l’AF­PA… J’ai trou­vé ça hor­ri­ble… pas plus que LISP, mais je ne voy­ais vrai­ment pas pourquoi je devrais appren­dre un nou­veau lan­gage de ce type… J’au­rais dédié celui-ci à l’en­seigne­ment de l’in­for­ma­tique, mais ce n’est vis­i­ble­ment pas (ou plus) le cas d’Haskell.

Il a été util­isé pour réécrire le sys­tème anti-spam de Face­book Sig­ma. Pan­doc, le logi­ciel de con­ver­sion de doc­u­ments numériques en ligne de com­mande a aus­si été dévelop­pé en Haskell… et il y a d’autres exem­ples !

Bon, Haskell, le futur lan­gage de pro­gram­ma­tion d’Epic Games ?

Pas sûr… En tous cas, si vous voyez un intérêt à ce lan­gage, je veux bien écouter vos argu­ments. J’imag­ine qu’en IA, en traite­ment de chaines pour la ges­tion du lan­gage naturel, pour faire un fil­tre bayésien anti­spam, etc. Il doit avoir un coté pra­tique. Mais pour le reste… je suis per­plexe.

Une réflexion sur « Haskell, un langage de programmation fonctionnel qui monte ! »

  1. Débuter dans la pro­gram­ma­tion fonc­tion­nelle avec Haskell c’est assez vio­lent. Per­son­nelle­ment, j’ai débuté tout douce­ment avec Javascript avant de pass­er sur Elixir puis Ocaml (et de temps en temps Rust).

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.