Les NCrafts 2015 ont eu lieu du 21 au 22 mai dans la Grande Crypte à cinq minutes de l’Arc de Triomphe à Paris. Cet article est un résumé des deux jours de conférences techniques. J’ai choisi de parler ici des conférences qui m’ont plu.
Tout d’abord, il faut dire que le lieu était sympathique, et donc propice à faire éclore les bonnes idées.
Le programme était alléchant et des speakers de haute volée étaient présents à cette rencontre.
Trois salles étaient dédiées à cette manifestation. Deux salles de conférences et une salle pour des Katas.
Le thème phare de cette année était la programmation fonctionnelle avec F# à l’honneur dans beaucoup de conférences. De mon côté, je m’attendais à voir défiler tout l’attirail Software CraftsManShip, c’est-à-dire du TDD, BDD, DDD, tout ce qui contient deux D !!! Mais les conférences étaient plutôt tournées sur le paradigme fonctionnel. J’étais donc très content de pourvoir approfondir mes connaissances sur cette approche.
Tout doucement (et dans la douleur pour certains), j’ai commencé par la conférence de Mr Phil Trelford « Write Your Compiler in 24 Hours ». Le thème semblait difficile, et la conférence était elle-même ardue (en toute franchise).
Phil est parti d’un DSL (Domain Specific Langage) pour nous amener à l’écriture d’un compilateur en F#. Le code écrit est traduit en F# donc exécutable sur la plateforme .Net.
J’ai continué dans les conférences avec la programmation fonctionnelle en C# de Tomasz JASKULA. Le langage C# a une orientation objet très forte. Mais des doses de concepts fonctionnels y sont intégrées depuis le Framework 3 avec Linq. Tomasz nous a montré un exemple d’un programme orienté objet classique en C# et son lot de dépendances (le D de SOLID). Tomasz nous a montré avec brio comment résoudre ce problème avec une approche purement fonctionnelle en développant des expressions lambdas à tous les étages. On y voit la puissance de l’approche fonctionnelle sur le paradigme objet pur.
Dans les grandes lignes, il a créé deux objets : un résultat et une erreur. Puis il a mis en place un système qui agit comme un pipe (chaine de responsabilités) : on chaine les fonctions en passant en entrée d’une fonction le résultat de la fonction précédente. Si une erreur survient, le chainage des méthodes s’interrompt. Ce processus respecte totalement la philosophie du langage fonctionnel et l’émule parfaitement avec du C#.
La conférence « My adventure with ELM » (un titre énigmatique pour moi !), était la présentation de la plateforme ELM. La plateforme « Function Reactive Programming » est idéale pour faire des jeux vidéo en F#. Le code interactif est écrit en F# et traduit en HTML, CSS et JavaScript, donc interprétable par un navigateur. Le résultat est bluffant et le test du jeu très rapide. Yan Cui (le speaker) nous a montré la capacité à implémenter un jeu de type « Snake » en F# et directement interprétable dans le navigateur via la plateforme ELM. Il nous a également montré à quel point il est simple de tester et débugger son jeu avec cette plateforme. En effet, elle met à disposition des outils puissants comme le curseur de défilement : on fait varier via un curseur les valeurs possibles d’une variable. Le résultat interprété est visible en temps réel dans le jeu. Cela permet de trouver très rapidement la valeur que devrait prendre une variable pour arriver à la position dans le jeu souhaité.
Bref, si cela éveille votre curiosité, je vous conseille d’aller faire des essais sur ELM http://elm-lang.org/try
La conférence d’Evelina Gabasova (le seul speaker femme !) sur « machine learning the F# way », nous a permis d’appréhender le data mining sur des flux tweeters en F#. Elle nous a fait une démo en deux trois mouvements du calcul des personnalités les plus influentes sur tweeter qui parlent de F#. Et, mystère, Mr Phil qui participait à la conférence, faisait partie du top 10 (il faut rendre à césar ce qui appartient à césar) !
Evelina Gabasova nous a également parlé de l’humeur générale de tweets tagués #fsharp : est-ce que les gens parlent négativement / positivement de FSharp ? Elle a utilisé très simplement une librairie java importée dans du code F# pour faire l’analyse des sentiments qui ressortent des tweets. Ses conclusions: résultats plutôt négatifs car FSharp est également une note de musique donc les statistiques sont faussées, il faut mettre un contexte (sémantique quand tu nous tiens…).
Elle répondait également à la question suivante : combien de chances a-t-on si on tweete à propos de FSharp pour que quelqu’un de la communauté nous réponde ? (80% pour F# car petite communauté, 60% pour C# car grosse communauté)
La deuxième journée, j’ai commencé par la conférence « Type-Driven Development » de Mark Seemann (ouf, j’ai retrouvé une techno qui contient deux D). Il faut dire que ce paradigme m’a beaucoup plu. Il faut modéliser tout le métier via des types ce qui permet de cerner toutes les contraintes du domaine.
D’ailleurs la conférence suivante « Entreprise Tic-Tac-Toe », se donnait comme objectif de montrer qu’on peut adresser toutes les problématiques rencontrées dans les applications d’entreprises (performance, sécurité, évolutivité, scalabilité…) en F# et facilement en suivant le paradigme Type Driven Developement. Le speaker a donc montré comment coder la logique du jeu Tic-Tac-Toe (en français « le morpion »).
Je vais finir cet article en rendant un hommage vibrant (c’est bien le mot) à la conférence « If you’re not live coding, you’re dead coding !) » de Jérémie Chassaing. Il a fait vibrer la salle comme un DJ sur le dance floor avec de la musique codée en live en F#. Il faut dire que l’interactivité de F# se prête bien au jeu. Il nous a même montré les interactions possibles avec son petit robot via du code fonctionnel.
Toutes les conférences étaient très intéressantes. Les speakers talentueux et qui maitrisent leurs sujets. Cependant, il faut un bon background technique pour comprendre les thématiques abordées.
C’était mon premier NCrafts et j’attends vivement les prochaines sessions. Un grand bravo donc aux organisateurs de Alt.Net !