13 novembre 2012

Devoxx 2012, day 1

C'est donc reparti pour 5 jours à Devoxx, La conférence java à ne pas manquer.

Premier jour, je suis l'université "Scala" pour en savoir un peu plus sur ce langage qui est autant défendu bec et ongles par ses fans que décriée par ses détracteurs. Pendant 2h30, les constructions de base du langage sont présentées en expliquant comment le compilateur interprète la syntaxe et la transcrit en invocations de méthodes. Pédagogiquement parlant, le talk est un régal. J'adore l'approche qui consiste à d'abord montrer un concept avec une approche très procédurale, puis à refactorer pour donner plus de "fonctionnel" et introduire les simplification de syntaxe, pour aboutir à du "beau" code scala, et dans les exemples qui suivent à toujours rappeler l'opération inverse, par exemple que "2 + 3" est interprété par le compilo comme "(2).+(3)" - évidemment, hors contexte ça fait un peu zarbi :)

Session intéressante qui donne (presque) envie de s'y mettre :D

Pendant l'après midi j'ai suivi la session "from syncrhonized() to parallel()" de Jausé Paumard. Après des rappels présentés avec précision sur le multi-threading et le pourquoi du "le double check ne fonctionne pas", José nous montre comment les librairies low-level utilisent des hacks pour contourner les problèmes de synchronisation du cache L1 (padding de la ligne de cache). On passe ensuite au niveau framework avec les SMT et le framework Akka, et enfin à l'évolution de Java avec le fork-join de Java 7 et les parallel collections de Java 8. J'ai adoré la conclusion du talk : après avoir vu pendant 2 heures les technos de paralélisation, José nous expose les conclusions d'un concours sur du calcul de suite de Fibonacci. Le record absolu est obtenu avec un algo séquentiel sur mono-coeur, en optimisant les éléments de bas niveau et l'algorithmique. Rien ne sert d'avoir 128 coeurs avec un algo pourri, et tous les algorithmes ne se paralélisent pas bien, nous sommes donc au début d'une nouvelle aire de l'algorithmique où nous allons devoir (ré)inventer des algorithmes pour tirer partie d'une informatique toujours plus distribuée.

La journée continue avec les Tools in Action, dont celui de Julien Viet sur CRaSH, le shell de votre JVM, que j'aimerais bien intégrer dans un plugin Jenkins pour faire du deboggage de builds - une idée pour le hackergarten du mardi ?

Fin de journée autour de quelques bières à échanger nos souvenirs de vieux geeks, mais bon, il faut être sage on est que lundi ...