La 4ème édition de ScalaIO a eu lieu les 2 et 3 novembre 2017 dans les locaux de l’école CPE à Lyon. Il s’agit de l’événement principal de la communauté Scala en France mais il y a également une forte composante internationale avec environ la moitié des talks qui sont donnés en anglais et de nombreux participants et speakers étrangers.
Comme chaque année, nous avons eu droit à une excellente conférence avec de très bonnes sessions, de nombreux speakers renommés et une organisation remarquable. Cette année un accent particulier avait été mis sur l’ouverture aux moins expérimentés avec pas mal de communication en amont sur cet aspect et les deux tiers des talks qui étaient accessibles aux débutants.
Ceux qui veulent faire fondre leurs neurones n’étaient pas en reste pour autant avec comme à l’accoutumée des sessions avancées sur des sujets complexes tels que la théorie des catégories ou bien toutes les merveilles que l’on peut faire avec le système de types de Scala. Autre nouveauté de cette année, l’ensemble des sessions a été filmé et elles devraient donc être très certainement disponibles prochainement en streaming.
Dans la mesure où il n’est malheureusement pas possible d’assister à toutes les sessions (4 tracks et un workshop en parallèle) il faut donc faire judicieusement son choix ce qui peut s’avérer difficile ! Voici donc quelques conférences qui m’ont particulièrement marqué.
Déduction automatique d’instance de type classes avec shapeless (par Etienne Couritas, slides)
Cette session revient sur le livre The Type Astronaut’s Guide to Shapeless par Dave Gurnell. Etienne nous explique en quoi Shapeless peut nous aider à créer automatiquement des instances de type classes pour nos case class et nos sealed trait. Il prend pour cela l’exemple d’une type class Ordering[T] qui permettra de comparer nos objets. Cet exemple simple mais concret permet de bien comprendre l’intérêt de l’utilisation qu’on peut faire de shapeless et des types class tout en expliquant et en démystifiant les mécanismes sous-jacents.
Going bananas with recursion schemes for fixed point data types (par Pawel Szulc)
Un peu plus abstraite, cette session traite des structures récursives (listes chaînées, arbres, …) et comment on peut faire en sorte d’extraire la logique de parcours récursif des opérations à appliquer dessus. Tout n’est pas encore très clair pour moi (il est question de catamorphismes, d’anamorphismes et d’hylomorphismes) mais les perspectives présentées, avec la séparation des opérations et du parcours + composition des opérations pour ensuite les effectuer en une seule traversée de la structure, m’ont beaucoup plu ! La présentation utilisait la librairie scala Matryoshka, à creuser !
J’ai également entendu de très bons échos du talk A Crash Course in Category Theory de Bartosz Milewski (slides) et on se souviendra aussi du duel au sommet sous le hashtag #ClashOfIOs entre Daniel Spiewak et John A. De Goes au sujet de la IO Monad et de son implémentation dans différentes librairies.
Conclusion
Comme chaque année ça aura donc été une très bonne expérience, très enrichissante et qui permet de repartir le vendredi soir avec une grosse migraine. On découvre de nouveaux concepts à appréhender mais aussi des idées plus concrètes sur des nouvelles choses à mettre en place dans notre travail de tous les jours. C’est également l’occasion de revoir des têtes connues, de retrouver d’anciens collègues et d’échanger avec la communauté dans une excellente ambiance. Un petit regret à ce sujet d’ailleurs, nous n’avons malheureusement pas pû aller à la Communauty Party qui avait lieu au Château de Montchat et était organisée par Lunatech le jeudi soir en raison d’une coupure d’une des lignes de Tram de Lyon.
Un grand merci donc aux bénévoles de ScalaIO pour cette super édition, aux speakers, aux participants et également à Car&Boat Media pour nous avoir envoyés là-bas. A l’année prochaine !!