Les 3 présentations de la première rencontre Elm à Paris

par Christophe Combelles, mis à jour le 29/03/2016

Mercredi dernier avait lieu le premier meetup parisien sur le langage Elm.

Elm est un langage relativement récent, classé dans la catégorie des langages fonctionnels, très fortement inspiré de Haskell et dont la principale cible est le développement web front-end, car il se compile en javascript pour être exécuté par le navigateur. Ce langage a aussi été une forte source d'inspiration pour la bibliothèque Redux, dont le but est d'introduire des principes fonctionnels dans l'architecture des applications javascript.  Nous aurons l'occasion de revenir sur ces sujets car ils offrent des capacités assez uniques pour la création d'application web ultra-robustes et ultra-réactives.

La rencontre avait lieu dans les locaux de Meetic, et était découpée en trois présentations.

Introduction à Elm

La première était une introduction générale du langage et de sa syntaxe par Thomas Brisbout (développeur Javascript freelance), avec des notions somme toute assez abordables : définition de types, de fonctions, composition de fonctions, fonctions curryfiées, puis un aperçu de la notion de Signal, des outils disponibles et des sources de documentation et d'apprentissage :

Elm signals

La deuxième présentation était beaucoup plus osée : un live-coding par Julien Michot (développeur freelance Ruby/Javascript) qui a repris le premier exercice du tutoriel Elm mais a essayé de le reproduire en direct sans utiliser la bibliothèque start-app qui permet de démarrer rapidement une appli web en Elm avec moins de code à écrire et moins de notions à comprendre. C'était assez réussi mais déjà beaucoup moins abordable pour quelqu'un qui n'aurait pas eu de première expérience avec Elm. L'analogie du « timelapse » pour expliquer les signaux était assez bien trouvée : une application Elm transforme un flux de signaux entrants, interaction utilisateur ou réseau, vers un signal sortant, un « signal HTML » sorte de succession de DOMs virtuels. C'est assez similaire à ce qui se passe dans une application CycleJS  ou React/Redux.

Real world Elm

La troisième présentation était réalisée par le tech-lead de Meetic, Kevin Le Brun, qui a expliqué les trois concepts indispensables pour contruire une vraie grosse application en Elm ou incorporer Elm dans une application Javascript : les Signaux, les Ports et les Tasks. Ces trois notions permettent à Elm de dialoguer avec le monde extérieur, par exemple avec des widgets javascript, ou d'implémenter des traitements syntaxiquement plus proches des langages impératifs, en conservant la pureté des fonctions, un peu à la manière des monades en Haskell. Mais chut, c'est un mot à ne pas prononcer. Le créateur d'Elm fait tous les efforts du monde pour rendre son langage accessible au plus grand nombre et n'hésite pas à simplifier ou renommer certains concepts en fonction des retours de la communauté.

Le deuxième meetup Elm devrait avoir lieu le 4 mai. Ce sera l'occasion de poursuivre la découverte de ce langage passionnant ou d'approfondir certaines notions.