Je suis intervenu récemment à l'Université Paris Nanterre pour un séminaire de deux heures focalisé sur la programmation fonctionnelle, suite à une proposition d'un enseignant-chercheur. La session était appelée "Ce qu'il faut savoir de la programmation fonctionnelle" et était présentée face à une vingtaine d'étudiants de niveau licence 3 et master 1 et 2 en informatique, ainsi que des enseignants. Mon objectif est alors de sensibiliser un tel public à ce style de programmation, lui expliquer qu'on retrouve ce paradigme de plus en plus dans le projet sous une forme ou sous une autre.

Ceci dit, la difficulté a été pour moi de me mettre à la place d'un étudiant. Vous souvenez vous de cette période où il vous semblait (pour certains) difficile, voire très difficile, de trouver un emploi et de trouver la bonne approche pour vous mettre en valeur ? Vous souvenez vous de cette époque où vous ne saviez pas encore ce qu'est vraiment un projet informatique en entreprise ? Vous souvenez vous surtout de cette époque où vous aviez de toute façon pas d'autres choix que de développer des projets jetables ? C'est-à-dire, qu'entre les cours et les TDs, et les projets à faire pour les autres modules de formation, vous deviez passer du temps, parfois seul, parfois en équipe, sur des projets cherchant généralement à résoudre... un problème technique. Et vous cherchiez alors à faire le juste nécessaire pour obtenir une bonne note, avec pour seule véritable exigence en termes de qualité de code de pouvoir être revu par l'enseignant. Même si on y retrouve cette notion de date limite de livraison, ceci contraste fortement face à des projets en équipe pleinement dédiée qui doit apporter un produit avec une valeur métier, censés durer dans le temps et être repris par d'autres développeurs que vous connaissez ou que vous ne connaîtrez jamais. Ces points, je les avais oubliés. C'est en discutant avec les enseignants qu'ils me sont revenus en mémoire.

En attendant, il fallait donc faire cet effort d'expliquer ce qu'est un projet informatique en entreprise, expliquer les problèmes rencontrés, pour finalement expliquer ce qu'apporte la solution mise en avant.

Plus qu'une simple présentation sur la programmation fonctionnelle, j'ai ainsi cherché à expliquer mon parcours et comment est-ce que j'ai vécu la montée en popularité de la programmation. J'ai montré ensuite comment se déroule un projet informatique en entreprise, comment s'organise une équipe de développement et quelles sont les difficultés qui y sont rencontrées (communication, maintenabilité du code, tentatives de séparation des aspects métiers et techniques...). Et pour terminer, j'ai présenté l'origine de la programmation fonctionnelle, ses apports dans le monde du développement et aussi les difficultés rencontrées avec ce type de paradigme. J'ai alors montré des concepts de la programmation fonctionnelle applicables dans la plupart des langages modernes, donné quelques cas d'usage et déroulé une démonstration à travers une application Web, dans laquelle j'expose clairement l'architecture et dans laquelle j'ai aussi organisé un live coding, passant de données écrites en dur dans le code, à des données provenant d'une base PostgreSQL dans un conteneur Docker, puis de Paris Open Data. Quelque chose me dit que la partie démonstration / live coding avait bien attiré l'attention, au vu du changement de posture dans le public.

Difficile néanmoins d'avoir les avis des étudiants sur la session. Ce sont surtout les enseignants qui m'ont fait leurs retours. Ils ont en tout cas perçu l'intérêt d'intégrer la programmation fonctionnelle dans les cours, mais aussi de voir un peu autrement l'élaboration des projets à donner aux étudiants, grâce à cette démonstration autour de l'application Web.

De cette expérience, il me paraît important de conserver une relation avec les institutions d'enseignement supérieur quel qu'ils soient, dans la mesure où ils sont responsables de la formation des développeurs qui renouvelleront le marché de l'emploi. En partageant, nos points de vue, nous participons à l'amélioration de l'enseignement. Il apparaît aussi qu'une bonne démonstration vaut mieux qu'un long discours ! Ça fonctionne non seulement dans les conférences communautaires, mais aussi auprès de n'importe quel public sensible au code et à ce qu'il apporte.

En tout cas, j'espère bien renouveler l'expérience !


Je tiens à remercier l'Université Paris Nanterre, ainsi que Pascal Poizat et Lom Messan Hillah, tous deux enseignants-chercheurs, pour la mise en place de tels séminaires et pour l'accueil qui m'a été réservé.

Voici les supports qui ont servi lors du séminaire :