Sorry folks, to be concise I choosed not to translate my blog post
in English for now, thus I respect the 75% french - 25% english part
of Devoxx France ;).
However, if you're interested in my opinion, you can try to Google
translate the french version below
J'ai eu la chance d'assister à l'intégralité de la première édition
de Devoxx France.
Devoxx France ?
Pour les personnes peu bercées dans la culture Java il s'agit de la
création en France d'une conférence destinée aux développeurs
passionnés. C'est un format adapté de l'ancienne conférence
Javapolis renommée Devoxx il y a quelques temps (une sombre histoire
d'utilisation du terme déposé Java que Sun voulait empêcher) qui a
lieu tous les ans en Novembre à Anvers en Belgique. La principale
différence entre les deux conférences réside dans l'obligation pour
Devoxx France de proposer au minimum de 75% de talks en français.
Formule
La formule retenue pour cette conférence est divisée en deux formats
:
-
le premier jour était dans un format "Université" qui correspond à
des conférences de 3h permettant de bien approfondir un sujet
précis, des sessions Tools in action de 30 minutes pour découvrir
une nouvelle technologie et des sessions "Tools in action" de 3h
permettant de mettre les mains dans le camboui,
-
les seconds et troisièmes jours étaient dans un format conférences
de 55 minutes ainsi que deux sessions quickies de 15min à la pause
déjeuner .
Chaque soir il y a eu des B.O.Fs permettant aux différentes
communautés de se retrouver et d'échanger, ainsi que la soirée Meet
& Greet du jeudi ouverte à tous.
Quelques chiffres
Je retranscris les chiffres que l'équipe de Devoxx France nous a
communiqué lors de la keynote d'ouverture :
- 133 présentations
- 199 speakers
- 36 JUGs et UGs
- 1250 participants
Impressions
Jour 1 : 18 Avril 2012
J'ai participé, dans l'ordre, aux sessions suivantes :
Le sujet est très porteur actuellement, beaucoup de structure sont
en train de se demander comment faire communiquer de façon plus
efficace ses différents services. L'approche utilisée pour traiter
le sujet a réellement été très instructive et basée sur un cas
concret : la création d'un service de partage de fichiers. La chaîne
des techniques utilisées est partie de la rache (ISO 1664) pour
arriver à un déploiement en continu via la construction de package
natif déployable automatiquement par le serveur d'intégration
continue.
Cette présentation nous a proposé un parcours de l'ensemble des
domaines existants permettant d'exprimer nos besoins algorithmiques
par le biais des langages. Des échanges très intéressants ont eu
lieu lors de la session permettant de réellement se rendre compte de
la problématique de recherche inhérente à la théorie des langages.
Le support utilisé pour illustrer la programmation fonctionnelle
était Scala.
La problématique de la bonne utilisation de la mémoire est quelque
chose qui me tient à coeur c'est pourquoi je suis allé voir cette
présentation sur un projet naissant permettant de faire du cache
off-heap :
Apache DirectMemory. Celui-ci en est à ses balbutiements mais est vraiment très
intéressant et mérite de réellement s'y pencher !
Le javascript prend une place de plus en plus importante dans nos
applications, cependant il reste encore en retrait en ce qui
concerne l'outillage permettant de s'assurer de sa qualité. Dans
cette présentation, différents outils permettant d'augmenter la
qualité du code produit ont été présentés. L'approche était
didactique en montrant comment, de façon simple, remonter des
informations depuis jenkins vers sonar (résultats des tests,
violations, couverture...).
La problèmatique de montée en charge d'une application et du bon
comportement de celle-ci est réellement quelque chose de fondamental
dans les applications que nous produisons actuellement. Ce projet
récent mais néanmoins complet offre une approche basée sur un DSL
pour tester son applicatif. La façon de faire est très intéressante
puisque plus "parlante" selon moi que ce que les autres outils
fonctionnant sur un mécanisme d'enregistrement permettent de faire.
La présentation nous a permis de cerner comment utiliser le projet
et visualiser les résultats obtenus. C'est un projet que je vais
essayer au sein de SRMvision pour anticiper notre montée en charge.
Jour 2 : 19 Avril 2012
Cette keynote d'ouverture était très bien tenue et a permis de
resituer l'histoire de Devoxx France et du Paris JUG qui en est
l'organisateur originel.
Présentation très intéressante sur la façon d'aborder les choses du
point de vue du développeur. Le sujet a été très bien traité et
permet de ressortir en se disant qu'il est nécessaire pour un
développeur de s'ouvrir aux personnes qui l'entourent pour produire
du logiciel qui réponde réellement aux besoins utilisateurs.
La présentation a été abordée de façon humoristique essayant de se
projeter dans 5 ou 10 ans et de deviner ce que peut devenir le
paysage du développeur. La présentation a été rondement menée et
permet de prendre du recul en se disant qu'énormément de choses
peuvent changer en très peu de temps.
Cette présentation a permis d'aborder, de façon simple, le bytecode
manipulé par la JVM. Après une introduction rappelant les mécanismes
utilisés en assembleur, différents outils jonglant avec le bytecode
ont été présenté, de la génération de bytecode via ASM, à
l'injection de code dynamiquement via Byteman en passant par la
programmation orientée aspect d'AspectJ. Enfin, la présentation de
Jooflux, projet de recherche permettant de changer, à chaud, les
appels de méthodes grace à invokeDynamic du JDK7 a conclu la
présentation. Le tout a été présenté avec une très bonne approche,
didactique et surtout assez exhaustive des possibilités offertes via
la manipulation du bytecode.
Cette présentation a permis de montrer de façon très simple, la
puissance du Javascript côté serveur grace à NodeJS. Le speaker a
fait la démonstration du développement d'un proxy http basique en
une vingtaine de lignes de javascript. Le résultat est assez
bluffant il faut l'avouer. Il a ensuite prolongé sa présentation par
une petite revue des points de vigilance nécessaire avec la
programmation fonctionnelle, utilisation de fonctions comme méthodes
de rappel pour éviter d'être bloquant.
Cette présentation de James Ward a permis de se rendre compte de la
simplicité de développement en utilisant Play2! Ceux qui étaient à
son université la veille m'ont dit qu'ils ont eu l'impression de
revivre la même présentation, ce qui est fort dommage. L'axe utilisé
lors de la présentation prônait le fait de s'appuyer au maximum sur
les CDN pour servir les données statiques de son site (pour réduire
la latence), et de servir les données dynamiques en utilisant JSON.
Sa démonstration était bien sûr appuyée par l'utilisation d'heroku
pour déployer simplement son application dans le cloud.
C'est exactement l'approche utilisée par Trello pour leur très bonne
application de gestion de tâche : ils distribuent le moteur en
utilisant les CDN et fournissent les données en utilisant du JSON,
la mise en forme est faite par un moteur de templating
Javascript.
La technique permet de facilement transformer une application
"classique" en application communicante via des appels Javascript
asynchrones, en attendant que Websocket soit réellement
démocratisé.
La présentation a été l'occasion pour James Ward de nous parler du
projet web-jars qu'il
venait de lancer, l'initiative est excellente, et l'idée simple, il
s'agit de simplement utiliser la puissance de la gestion des
dépendances de maven pour représenter les librairies javascript
utilisées dans un projet. L'approche est bien plus élégante qu'un
bête copier coller des fichiers javascript au sein de son projet.
Je pense qu'il s'agit d'une des conférences les plus intéressantes
que j'ai pu voir cette année. Le sujet traite d'une étude d'une
réelle problèmatique d'entreprise. Le sujet était la gestion des
logs d'un site marchant, le volume de données à traiter était
considérable (7 Go de logs / serveur / jour pour 500 serveurs),
l'idée est d'extraire le maximum d'informations des logs en un
minimum de temps. Je ne pourrais pas facilement résumer la
présentation mais je peux citer les technologies utilisées pour
arriver à une exploitation correcte des logs et une analyse complète
avec seulement 2 minutes de délai.
La chaîne utilisée pour cette analyse de log part d'une
centralisation des logs dans un cluster Hadoop grace à l'utilisation
de Flume (pour l'instant syslog-ng est utilisé mais n'est pas
réellement indispensable), de là, l'interrogation des données est
faite via MongoDB et la restitution visuelle est faite grace à Play!
La chaîne est relativement simple mais a nécessité des optimisations
de la configuration des différentes couches réseau traversées (pile
TCP, interface réseau dédiée...)
Je m'attendais à une présentation permettant de résumer de façon
efficace les différentes pratiques permettant à un développement de
durer dans le temps, je pensais que j'entendrais des évidences, mais
pas autant que j'en ai entendu, le discours était bien mené mais
trop simpliste selon moi, je pourrais le résumer en une phrase :
"prendre le temps de bien faire les choses au début coûte moins cher
que de devoir en assurer la maintenance".
B.O.Fs
J'ai participé au BOF destiné à l'Open Source, le thème était
intéressant et il y a eu un vrai échange sur les sujets suivant :
- Qu'est ce qui nous entraîne à contribuer à l'Open Source?
-
Comment justifier la contribution Open Source à son employeur ?
-
Où en serait le paysage informatique sans l'Open Source (l'exemple
de la chaîne de build a été pris comme exemple)?
J'ai ensuite profité de la fin de la soirée pour discuter avec les
différents exposant présent sur les stands et enfin terminer cette
dernière journée avec l'équipe du Paris Android User Group ainsi que
Romain Guy au restaurant, où nous avons pu échanger sur nos
différents parcours et nos activités.
Jour 3 : 20 Avril 2012
Cette présentation était une présentation sponsorisée d'IBM, rien
d'intéressant à se mettre sous la dent, le réveil difficile a en
plus été plutôt inutile. Cette présentation ne m'a strictement rien
apporté, à part l'envie de prendre un café supplémentaire pour
rester éveillé.
Excellente présentation, Patrick Chanezon a pris le parti de
comparer la vie d'un développeur à l'histoire de The Artist, pour
relever les écueils auquel un développeur est souvent confronté au
cours de son expérience professionnelle. Le passage quasi
obligatoire en chef de projet au bout d'un laps de temps très court
qui finalement ne correspond pas aux envies de la majorités des
développeurs. Je n''ai finalement pas regretté de m'être levé, cette
intervention était réellement exceptionnelle.
Neal Ford est un speaker reconnu, je n'avais jamais eu la chance
d'assister à l'une de ses présentations, c'est maintenant chose
faite et je peux vous confirmer que sa réputation n'est pas
surfaite. En admettant que nous sommes obligés de nous positionner
au dessus d'abstractions pour réaliser notre travail de tous les
jours, il a permis, via des exemples très bien trouvés, de faire
passer le message qu'il est nécessaire de connaître le niveau
d'abstraction inférieur à celui sur lequel nous nous basons pour
être réellement efficace dans notre travail.
J'ai été un peu déçu par cette présentation, je m'attendais à de
réels exemples et bonnes pratiques permettant de tirer le maximum du
matériel. Il s'agissait en fait d'une conférence rappelant
l'architecture de nos systèmes et nous rappelant que la principal
goulot d'étranglement de nos systèmes se trouve être les accès au
monde extérieur depuis le ou les CPU(s) et qu'il est donc important
de bien gérer les entrées / sorties.
Très bonne présentation permettant d'appréhender la version NoSQL de
l'ORM Hibernate. L'idée est de réutiliser au maximum l'existant
d'Hibernate pour être capable de passer d'un système relationnel
classique à un backend NoSQL en utilisant le même mécanisme
d'annotation que celui qui est connu de tous sur les entités JPA. Le
projet est pour l'instant encore en phase de démarrage, et les
backend supportés ne sont pas nombreux (Infinispan, Mongodb de façon
sommaire)
Conférence un peu décevante, je m'attendais à avoir autre chose
qu'une simple lecture de la documentation de l'API de Google Guava.
Bien qu'intéressant, il n'y avait finalement que peu de points qui
n'étaient pas abordés explicitement dans la documentation du projet.
Cependant, l'ouverture vers l'API de cache m'a donné envie d'aller
voir la conférence suivante qui traitait justement de cette API.
Cette conférence était malheureusement très similaire à la
précédente, l'approche n'était pas très intéressante et se résumait
à une lecture de l'API documentée. Quelques exemples venaient étayer
l'ensemble, mais je n'ai pas trouvé le contenu très enrichissant.
Cette conférence était une étude d'un cas pratique exposant, de
façon didactique, les différentes étapes et concepts à connaître
lorsqu'on veut optimiser au maximum la configuration de la mémoire
au sein de la JVM utilisée par son application. L'objectif étant de
minimiser au maximum les phases de "Stop the world" présentes
lorsque la JVM lance le Garbage Collector pour récupérer de la
mémoire.
Les trois jours de Devoxx France se sont terminés sur
l'enregistrement live d'un épisode des Cast Codeurs en direct de
Devoxx France. Au menu, un bon moment de rigolade et de convivialité
que vous pouvez librement
écouter en vous rendant sur le site.
Conclusion
C'est la première fois que je me rend à ce genre de conférence, et
ce n'est certainement pas la dernière. Bien que rythmées, les
journées sont loin d'être ennuyeuses, les sujets abordés par les
conférences sont dans la majorités des cas très intéressants, et il
est également possible de faire des rencontres sympa et d'échanger
simplement avec d'autres développeurs. Un point très positif est que
toutes les conférences seront visible sur la plateforme Parleys,
dont un accès est fourni à chaque participant. Il est ainsi possible
de revoir toutes les sessions !
Merci à toute l'équipe des organisateurs qui s'est démenée pour
organiser ces trois jours :
Rendez vous à Devoxx World en Novembre si je parviens à y aller, et
sinon, à Devoxx France l'année prochaine !