jeudi 28 mars 2013

DevoxxFR épisode 1 : un nouvel espoir

Mon premier jour à DevoxxFR 2013

Pour la deuxième année consécutive, la conférence Devoxx France se tient à Paris jusque la fin de cette semaine. Je suis parmi les quelques centaines de chanceux à pouvoir y assister et voici un compte-rendu (presque) à chaud de cette première journée.

<Beta>

Youniversity

La première journée est placée sous le signe de la pratique : elle regroupe un ensemble de session pratico-pratiques telles que les "Labs" et "Université" où pendant 3 heures l'idée est de rentrer dans les détails avec prise en main dans le premier cas, et les "Tools in action" où pendant 30 minutes, le/la/les speakers montre en vrai l'utilisation d'un outil/framework à l'auditoire.

Choisir c'est renoncer

Quel cruel dilemme de devoir choisir à quel présentation assister, car cela signifie que les autres présentation seront elles sacrifiées. Il a fallu choisir et voici mon expérience DevoxxFR-DayOne:

Ceylon

Plus Ceylon et plus c'est bon, après cette excellent présentation au Ch'ti JUG, je n'avais qu'une envie: mettre les mains dans le cambouis et cette fois avec les maîtres du sujet.
Très bonne session, faut dire que c'est un très bon langage, plein de bon sens et très moderne. L'outil en ligne de commande a été revu, il est maintenant aligné à la philosophie unix : une commande pour une action. Ainsi `ceylon run` pour lancer le programme, `ceylon compile` pour lancer une compilation, et ainsi de suite à la façon d'utiliser Git. Je regrette toutefois l'accélération fulgurante de dernière minute où j'ai finalement lacher le clavier pour suivre Stéphane car je ne suis pas dès plus rapide à écrire. D'autant plus qu'il était question de Herd, l'infrastructure d'hébergement qui se rapproche de Nexus de Sonatype que connaissent bien les utilisateurs de Maven.
C'est toutefois une magnifique expérience qui ne manquera pas de donner envie d'investir un minimum dans ce jeune langage pour la plateforme Java.

Travailler du mieux qu'on peut avec du code pourri legacy

Cette session s'est déroulée sous la forme d'un atelier, animé par David Gageot et Jean-Laurent de Morlhon, où le code d'une application est distribuée à l'assemblée pour que chacun y fasse le ménage à sa façon.
C'est un sujet qui nous préoccupe tous et auquel je croyais avoir été un minimum préparé. En effet, je me suis senti assez à l'aise avec le code présenté. L'intérêt majeur de l'exercice résidant dans le mimétisme parfait des défaut des applications maintenus depuis longtemps et par beaucoup (trop) de monde. C'est à dire que la matière première était très loin de ressembler à un code "Hello World".
Je suis donc le premier surpris d'avoir autant souffert durant le traitement de ce code, ayant à peine commencer à rayer le verni, je comptabilise tout de même quelques victoires.

3615 code Devoxx@Cloud

Je suis super content d'avoir pu assister à cette session "extra terrestre" où nous avons vu comment l'on pouvait recycler ces vieux matériels dont les moins de 20 vingt ans ne peuvent pas connaitre : le minitel. Connecté au moyen d'une liaison série à un des ces très petits ordinateurs, un Raspbery Pi, puis d'une connexion internet partagée au moyen d'un ordinateur portable frappé de la pomme, nous avons vu comment interrogé puis gérer une application construite et hébergée sur Cloudbees.
Un débuggueur d'une autre nature : un oscilloscope, le montage du matériel était très impréssionnant, idem de l'assemblage Lego NXT réagissant au résultat de build Jenkins.
Bref, une présentation complètement surprenante et rafraichissante.

CRaSH : un shell pour la plateforme Java

Cette session fu l'occasion de découvrir un shell un peu particulier : CRaSH, ce dernier possède des caractéristique assez proches des shell que nous connaissons sous unix : un interpréteur qui appelle des fonctions, built-in ou ajoutées par extension, la possibilité d'employer des |(pipe) pour composer les résultats des commandes entre elles, ... mais ce shell ne fait pas le lien entre l'utilisateur et le noyau mais entre l'utilisateur et la machine virtuelle Java. Il fallait y penser, en même temps on nous répète depuis combien de temps que cette machine virtuelle se comporte comme un OS.
Ce shell a montré bien des perspectives intéressantes, notamment dans la maintenance de système et/où de déboggage en live. Un outil dès plus intéressant.

Extreme Testing avec Byteman

Non, ce n'est pas un nouveau Super Héros qui vien rejoindre la ligue des justiciers, encore que. Mathilde Lemée nous a montré comment il était possible de perturber l'exécution d'un programme, par simple déclaration de règle particulière. Ces règles on la puissance suffisante pour interférer avec l'exécution du programme, et cela de n'importe quel endroit, vraiment n'importe quel endroit.
Il est donc possible de modifier le comportement d'un méthode, quand on le souhaite, de le remplacer par le comportement que l'on souhaite et sans avoir à intervenir sur le code en question. Il peut s'agir d'une méthode du SDK, d'une librairie tierce, sans même avoir besoin d'en disposer des sources.
Un outil très pratique quand il s'agit de simuler des comportement impossible à obtenir dans des conditions normales de test : latence réseau, file system plein, NullPointeurException, ... à voir donc.

Conclusion

Ainsi s'achève cette première partie de Devoxx, des idées plein la tête, des outils plein les poches et un faim insatiable de transmettre.