Devoxx jour 2

J’avais commencé la Devoxx 2011 avec la ferme intention de faire des comptes rendus journaliers. Et comme souvent, le plan n’a pas survecu au contact avec la réalité. Entre un WiFi extrêmement irrégulier, des journées très chargées et des soirées passées à socialiser plutôt qu’à faire le geek dans mon coin, je n’ai pas réussi à tenir mon planning.

Horacio@FinistJUG devant le booth Google

Horacio@FinistJUG devant le booth Google

Après une petite balade par le hall d’expositions et quelques photos, le deuxième jour de la Devoxx est bien démarré avec une session sur méthodologie et software craftsmanship : The Well-Grounded Java Developer, par Ben Evans et Martijn Verburg, sur l’évolution du métier de développeur en général et de développeur Java en particulier.
Ils passaient en revues des sujets qui deviennent centraux pour un développeur Java : parallélisation et concurrence, programmation fonctionnelle, modularité…lIls soutenaient que les développeurs ne peuvent plus se permettre de se reposer sur leurs acquis, et il recommandait d’apprendre au moins un nouveau langage et trois ou quatre frameworks par année, afin d’avoir une certaine perspective globale sur le développement, car seulement en ayant cette perspective on peut faire des choix informées.

The Well-Grounded Java Developer - Ben Evans et Martijn Verburg

The Well-Grounded Java Developer – Ben Evans et Martijn Verburg

D’ailleurs, dans deux mois ils sortiront un livre avec le même titre chez Manning, et vous pouvez déjà avoir un résumé dans un article qu’ils viennent de publier sur The Java Magazine (disponible gratuitement), The poligloth programmer. A montrer à votre chef la prochaine fois qu’il vous disse de ne faire que du Java…

The Well-Grounded Java Developer - Ben Evans et Martijn Verburg

The Well-Grounded Java Developer – Ben Evans et Martijn Verburg, photo de l’album officiel Devoxx

Avec toutes ces idées en tête, je suis descendu au hall chercher le repas, assez frugal comme d’habitude à Devoxx :

Pause midi frugale

Pause midi frugale

Je ne me suis pas donné le temps de le manger tranquillement, car le Quickie suivant commençait déjà, When code gets older – Tips for keeping maintenance projects alive and kicking. Quinze minutes de présentation par Sven Peters, d’Attlassian, qui expliquait, d’une façon assez drôle et caustique, pourquoi le code devenait inmaintenable et obsolète avec le temps, et qui donnait des suggestions pour essayer d’éviter ce processus, d’une façon assez pragmatique.

Sven Peters - When code gets older – Tips for keeping maintenance projects alive and kicking

Sven Peters – When code gets older – Tips for keeping maintenance projects alive and kicking

Sven vient juste de me dire par Twitter que ses slides sont disponibles.

Après cette pause midi assez qui n’était vraiment pas une, je suis allé à Building Android Applications for Performance and Usability par Bruno Oliveira, développeur Android chez Google. Sa conférence avait deux parties clairement différentes.

Building Android Applications for Performance and Usability - Bruno Oliveira

Building Android Applications for Performance and Usability – Bruno Oliveira

La première, très générique (pouvant s’appliquer à n’importe quel UI mobile), passait en revue des bons pratiques pour la conception des interfaces d’utilisateur mobiles. La deuxième, beaucoup plus technique et centré sur Android, donnait des conseils pour améliorer la performance des applications, éliminer des goulots d’étranglement et rendre les applis plus fluides, ainsi que des outils pour aider à analyser et corriger des problèmes de performance.

Building Android Applications for Performance and Usability - Bruno Oliveira

Building Android Applications for Performance and Usability – Bruno Oliveira, photo de l’album officiel Devoxx

Ensuite j’ai assisté à un Tools in Action par John Smart, Jenkins: From Continuous Integration to Continuous Delivery. J’avais déjà vu une présentation de Smart à Devox l’année dernière, sur le déploiement continu, et j’appréciais sa façon de présenter. Sa session de cette année m’a conforté dans mon avis, une présentation claire qui challengeait certaines idées pré-conçues (en nous invitant, par exemple, à tenir des différentes branches de fonctionnalités et profiter de Git et Jenkins pour garder tout ordonné, intégré et testé).

Jenkins: From Continuous Integration to Continuous Delivery - John Smart

Jenkins: From Continuous Integration to Continuous Delivery – John Smart, photo de l’album officiel Devoxx

Si vous voulez regarder un peu plus en détail, les slides de la conf sont aussi disponibles en ligne.

La journée de conférences continuait avec un Fireside Chat, un débat informelle avec Tim Bray, Cameron Purdy, Mark Reinhold et Henrik Ståhl. Un gars de Google (Bray) et trois gars d’Oracle, le débat est presque tourné au règlement de comptes, mais Tim Bray étant assez doué, le pire a été évité. Un moment agréablement geek en voyant ces quatre développeurs discuter sur le présent et le future de Java.

Fireside Chat - Tim Bray,  Henrik Ståhl, Mark Reinhold et Cameron Purdy

Fireside Chat – Tim Bray, Henrik Ståhl, Mark Reinhold et Cameron Purdy

Ensuite, pour bien finir la journée, j’ai assisté au BOF bien frenchy par Nicolas Martignol et Nicolas Leroux : Let’s Play! with Scala. Et c’est parti pour une heure de bon humeur autour de deux de mes sujets favoris, Play Framework et de Scala. Apparemment, l’accent français des deux Nicolas rendait la session encore plus sympathique, car exotique, mais je ne suis pas doué pour les accents 😉 En tout cas, une séance bien ficelée, pratique et utile.

Après le BOF on est rentré à l’hôtel, en bavardant avec Guillaume Scheibel, du ElsassJUG. Ensuite on est parti dîner, encore au Kelly’s (le pub irlandais près de la gare), où on été rejoint par des autres groupes de français et par deux collègues qui arrivaient de Brest pour la deuxième partie de la Devoxx. Une très bonne soirée, encore avec une hamburger géante, quelques pintes de Guinness et du bavardage sur la technique et aussi sur le métier d’informaticien.

Bref, une autre excellente journée, riche en découvertes.

Devoxx jour 1 (II)

Attaquons maintenant la deuxième partie de la première journée de Devoxx. Et si la première session était un peu décevante, la situation s’est rapidement amélioré, comme vous allez voir.

Après la pause midi (potage, sandwich et beaucoup de café), je suis allé à la session Android Awesomeness, par Romain Guy, Chet Haase et Philippe Milne, de Google.

Romain Guy et Chet Hesse dans Android Awesomeness présentation

Romain Guy et Chet Hesse dans Android Awesomeness présentation

La présentation a été un vrai régal, un sujet très attirant, des speakers très motivés, maîtrisant parfaitement leur sujet (après tous ils sont dans l’Android Team chez Google 😉 ), avec un vrai sens de la communication et une bonne dynamique. Ils ont présenté Android 4.0 Ice Cream Sandwich (ICS), ses nouveautés autant du point de vue de l’utilisateur que du développeur. Ensuite, ils sont rentré dans le détail du Grid Layout pour la définition des interfaces d’utilisateur, et ils sont fini avec une partie encore plus technique (yeah!) avec des outils de diagnostique système et mémoire pour Android.

Bref, une session très intéressante, un grand regain de motivation et envie de me remettre à Android et enfin coder une appli qui vaille la peine.

Une pause café encore et c’est reparti, cette fois pour une séance d’une demi-heure Tools in action, dans mon cas Using Vaadin to create HTML5-enabled webapps in Scala, par Henri Muurimaa. Le titre avait l’air accrocheur, avec plein de mots clés différentes, mais j’ai fait confiance et je suis allé… et je n’ai pas regretté, au contraire !

Henri Muurimaa codant en live un Game of Life

Henri Muurimaa codant en live un Game of Life

Depuis plus de deux ans et demi, je travaille avec GWT, et j’en suis très content. J’ai des collègues qui m’ont parlé de Vaadin, de sa relation avec GWT, de comment ça semble plus simple et intuitif. J’avais un peu regardé, fait un exemple ou deux, mais faute de temps, j’avais mis de côté. Je me suis donc dit que cette présentation pouvait être le bon moment pour apprendre plus sur Vaadin. Et en plus, fait avec Scala, que j’aime beaucoup, et générant du HTML5…

Et là, je dois dire que j’ai été bluffé. Dans une petite demi-heure, le gars a expliqué les principes de base de Vaadin et il a codé en direct un Jeu de la Vie de Conway en quelque cinquante lignes de Scala, tout compris.

Définitivement, il faut que je teste Vaadin sérieusement…

Encore une pause café (caaaaaaaaafééééééé), et le deuxième Tools in action commence. La je vais à une session technico-technique : Are your GC logs speaking to you, par Ben Evans. A priori, Mr. Evans n’était pas censé être le speaker de cette conférence, il a appris avec seulement deux heures d’avance qu’il devait remplacer le speaker. Et je dois dire qu’il a fait un super boulot avec ce remplacement !

Ben Evans expliquant les pools de mémoire en Java

Ben Evans expliquant les pools de mémoire en Java

D’abord il a présenté d’une façon très interactive les modèle de gestion de mémoire de la JVM. Ensuite il est parti sur l’analyse des logs du Garbage Collector, avec somme Puzzlers pour montrer par l’exemple la façon d’analyser ces log. Présentation donc très technique, et très intéressante.

Pour le reste de la journée, il faudra attendre, ma prochaine session va démarrer…

Devoxx jour 1 (I)

Quelques retours rapides sur ma première journée à Devoxx. Dans cette première journée, j’ai assisté à deux sessions de type University (durant trois heures chacune), à trois sessions Tools in action de trente minutes chacune et à un BOF d’une heure.

Je pars vers le centre de conférences, avec mon t-shirt FinistJUG

Je pars vers le centre de conférences, avec mon t-shirt FinistJUG

La première session était Scala crash cours. Elle était divisé en deux parties.

La première, Part 1: Scala: where objects and functions meet, presenté par Mario Fusco, était censé introduire le langage Scala, en exposant ses particularités et en le comparant à d’autres langages connus. Il a surtout comparé avec Java (pour le côté orienté objet), Groovy(pour la concision et le typage) et Erlang (pour l’aspect fonctionnel). Le présentateur n’était pas trop dynamique, et à mon sens il ne montrait pas vraiment les possibilités du langage, il se limitait à lister des features.

Scala crash course... crashed, IMHA

Scala crash course… crashed, IMHA

La deuxième, Part 2: Scala as an Agile Enabler, par Kevin Wright était assez décevante. Quelques lignes de live coding, du blabla, des phrases surréalistes (« je ne sais plus quoi dire d’autre alors je vais meubler jusqu’à la fin ») et une attitude globalement nonchalante. Ce qui m’attriste le plus, c’est que pour beaucoup de monde, c’était leur première introduction à Scala et cela risque de les détourner du langage, pourtant très intéressant et avec plein de possibilités.

La journée démarrait donc pas super bien… mais c’était sans compter avec le reste des sessions, qui ont largement compensé ce début.

Mais je vous raconterait tout ça dans la deuxième partie.