Retours sur DevoxxFR 2013

La seconde édition de DevoxxFR s'est déroulée fin mars 2013 Voici un petit compte rendu tout à fait subjectif dans lequel je partage mes impressions et tente de transcrire l’ambiance de ruche qui règne dans les couloirs du Marriott.

Devoxx est une conférence qui réunit les développeurs évoluant de près ou de loin dans le monde Java. Devoxx World (ou Devoxx tout court), anciennement Javapolis, a lieu chaque année à Anvers depuis 2002. L’an dernier se tenait la première édition parisienne. Elle a immédiatement connu un grand succès avec 1200 participants. Le succès ne s’est pas démenti cette année avec 1400 passionnés qui se sont bousculés aux portes du Marriott. La franchise Devoxx s’est d’ailleurs agrandie cette année avec la première édition de DevoxxUK.
Avec ses 6 conférences simultanées, ses quickies (mini conférence de 15 minutes) à la pause déjeuner, ses BOFs (réunion informelle réunissant des passionnés autour d’un sujet donné) en soirée et ses sessions de live coding, le programme est dense et nécessite parfois de faire des choix déchirants. Mon DevoxxFR 2013, c’est essentiellement des conférences sur la culture et les pratiques de développement au quotidien, de la programmation fonctionnelle et du live coding.

Le passé, le présent, le futur

Il s’agit du thème de cette année. Nous faisons un impressionnant bond en arrière de 50 siècles lorsque Clarisse Herrenschmidt débute la keynote de jeudi. Nous autres, informaticiens de 2013, sommes qualifiés de “manipulateurs de signes”. Elle établit alors un parallèle avec les manipulateurs de signes des civilisations antiques, qui ont formalisé les nombres en cherchant des techniques pour comptabiliser des amphores. Nous remontons alors le temps à toute allure jusqu’à Allan Turing et l’informatique telle que nous la connaissons. C’est drôle et passionnant à la fois, l’assemblée est conquise et c’est (à ma connaissance) l’unique standing ovation de la conférence.
Lors de la keynote du vendredi,
Habib Guerguachi nous propose quant à lui de construire le futur en dynamitant le présent. Habib pourfend avec virulence le fantasme de “l’hyper intégré”, ces SI d’entreprise qui font tout mais surtout, qui le font mal. Son exemple basé sur le film “Le quai des brumes” où il compare un site français sur l’audiovisuel à Google est un peu pathétique (ça nous a aussi fait beaucoup rigoler). Il propose d’aller vers “l’hyper distribué” en adoptant les principes qui ont fait le succès du Web (protocole HTTP, architecture REST). Un SI d’entreprise moderne serait ainsi constitué de multiples applications réduites qui interagissent selon ces principes. Habib nous propose ensuite de devenir acteur de ce changement en ne participant plus à la construction de “bousins inextricables” qui constituent aujourd’hui les SI d’entreprises classiques. Bref, c’est drôle, subversif et ça invite à la réflexion.

De la programmation fonctionnelle

La programmation fonctionnelle s’est invitée à DevoxxFR et s’est taillée une belle part de mon emploi du temps. Je n’avais pas parié gros sur l’utilité de ces cours de Caml à la fac, j’avais manifestement tort.
Dans la keynote de jeudi, “Objects and functions, conflict without a cause?”,
Martin Odersky (le papa de Scala) tente de réconcilier les paradigmes et les communautés objets et fonctionnels. Il nous explique qu’il ne faut pas les opposer et que l’approche objet est orthogonale aux approches fonctionnelles et procédurales. Martin nous avertit cependant que certaines habitudes liées à la programmation orientée objet doivent être abandonnées : la notion de “mutable state” est fondamentalement en contradiction avec la programmation fonctionnelle. L’état des objets ne doit donc pas être modifiable. Il explique que ce n’est pas un problème et qu’il est tout à fait possible de faire de la programmation orientée objet sans état. C’est à ce prix que nous pouvons utiliser la puissance expressive de la programmation fonctionnelle et écrire du code qui n’est pas sensible aux effets de bords, le rendant parallélisable très facilement (en Scala l’instruction “.par” seule permet de paralléliser les traitements).
Bodil Stokke et ses petits poneys ironisent quant à eux sur la hype autour de la programmation fonctionnelle. Ils nous proposent donc de nous armer en nous expliquant des termes et des notions qui font impression lors des dîners mondains. Après un bref historique où nous faisons connaissance avec les légendes photoshopées de la programmation fonctionnelle (Haskell Curry, Alonzo Church et John McCarthy), Bodil nous offre une séance de live coding en TypeScript où elle illustre des notions comme les foncteurs, la reduction, les fonctions d’ordre supérieure, les combinateurs, la composition, les foncteurs applicatifs, le currying et les mystérieuses monades. C’est décalé et très instructif (même si la notion de foncteur applicatif et de monade m’échappe encore).

Developers, Prima Donna of the 21st century ?

A sa manière irrévérencieuse, Hadi Hariri nous met également en garde autour de ce phénomène de hype. Selon lui, les développeurs tendent à devenir les Prima Donna de ce siècle. En cherchant à tout prix à être des “ninja developers” ou des “rock star developers” (et ainsi d’éviter l’infamante catégorie “entreprise developer”), ils se concentrent trop sur les frameworks, les méthodes ou le nombre de followers sur Twitter (son exemple des 400.000 followers des passionnants tweets de @big_ben_clock est plutôt savoureux). Ils perdent alors de vue l’essentiel qui est de changer la vie des gens, la seule innovation qui vaille. Ce discours détone clairement au milieu d’une conférence de technophiles mais cette conférence est un rappel plutôt sain sur le sens de notre métier.

Du live coding

Que serait une conférence de développeurs sans live coding ? Durant la journée de jeudi, l’équipe de code story a développé en live l’application Geektic, le site de rencontre pour Geek. En deux mots, l’application utilise l’API Twitter pour récupérer les tweets contenant le tag #geektic puis les parse pour connaître les affinités du rédacteur. L’application dispose d’une interface de recherche permettant à n’importe qui de chercher son Geek basé sur ses affinités. La stack technique est basée sur Jersey et Guice pour le back et Coffescript, Angular et Less pour le front. Une cession de code story dure 50 minutes et se décompose en 2 parties de 20 minutes séparées par une modification des binômes. Pour pimenter le tout, l'assemblée propose des fonctionnalités qui sont implémentées lors des sessions qui suivent. La sensation d’urgence est bien palpable : il faut aller vite et faire quelque chose de fonctionnel tout en expliquant ses choix à l'assemblée. C’est vraiment impressionnant et très instructif. Là aussi, ça fait pas mal réfléchir à ses propres pratiques de développement. Pour les curieux, le code est disponible sur Github.
J’ai également eu la chance d’assister à l’hallucinante cession de live coding de
Sadek Drobi et Guillaune Bort. Le défi est de créer une application WOA (Web oriented architecture) en 50 minutes en Scala avec Play Framework. L’API Twitter est également de la partie mais il s’agit ici récupérer les photos associées à un tag particulier puis de les afficher au fil de l’eau dans un navigateur. La tâche semble plutôt ambitieuse mais la productivité de Guillaume et Sadek avec Play est impressionnante. Le code est disponible sur Github. Il s’agit d’une autre démonstration de la puissance expressive de Scala et des langages fonctionnels : le code du contrôleur contient tout juste 124 lignes de code...

En conclusion

Un petit mot sur les sponsors qui ont très bien compris comment communiquer avec des développeurs. J’ai compté 2 robots, 2 baby-foot, une PS3, une tireuse à bière, un père Soat et une machine à pop-corn dans les stands. Ça rend la ballade parmi eux assez plaisante.Et pour ceux qui n’ont pas eu la chance d’y participer cette année, tout n’est pas perdu : la totalité des conférences sera accessible sur Parleys d’ici peu. Et en attendant, vous pouvez également lire les 1er retours sur le blog de Soat.
Pour conclure, aller à Devoxx, c’est comme se placer hors du temps pendant quelques jours et vivre au rythme effréné des conférences et des rencontres. C’est à la fois très fatiguant et très stimulant et cela permet de se gonfler à bloc pour notre quotidien de développeur. Bref, le rendez vous est pris pour l’an 2014.