Devoxx France 2014, ce que je retiens !
Les 17 et 18 avril dernier, j’étais aux 2 journées de conférence de Devoxx France 2014.
Nous étions nombreux à avoir eu la même idée !
Mon parcours
J’ai pu participer aux sessions suivantes :
- Keynote - L’Ere du numérique avec Gilles Babinet et Kwame Yamgnane.
- Keynote - Le métier de développeur avec Guy MAMOU-MANI.
- Keynote - Simplon avec Henri Fournet.
- Realtime Web avec Akka, Kafka, Spark et Mesos (slides) avec Hayssam Saleh et Jean-Philippe Bunaz.
- The reactive Backup talk avec James Ward.
- Au secours mon code AngularJS est pourri ! (slides) avec Thierry Chatel).
- Vive les WebSockets Libres avec Jean-François Arcand.
- Des applications réactives avec Spring, AngularDart et Websocket (slides) avec Sébastien Deleuze.
- BitCoin et monnaies cryptographiques (slides) avec Grégory Paul.
- Basses latences, hauts débits : les secrets de la finance pour avoir des systèmes réactifs (slides) avec Cyrille DUPUYDAUBY et Thomas Pierrain.
- Lambda Architecture - Choose your tools for Real-Time Big Data (slides) avec Florian Douetteau.
- Web performances, regardons les résultats de près (slides) avec Jeff MAURY, Nicolas Leroux, Philippe Charrière, Rémi Forax.
- Google Cast Development - Lessons Learned avec Hoi Lam.
- JavaScript, the next big … bytecode (slides) avec Mathieu Breton.
- Groovy en 2014 et au-delà (slides) avec Guillaume Laforge.
Plutôt que de vous ennuyer avec les détails de chaque session, je vais plutôt partager ce que je retiens réellement de Devoxx France 2014.
Commençons par les news.
Le mouvement CodeForFrance
Tarik Rim a présenté le mouvement Code for France avec son slogan : “La France a besoin d’un update”. Ce mouvement est directement inspiré des US qui ont un CODE for AMERICA. Le principe : les membres du mouvement unissent leurs forces pour mettre aux normes actuelles les différents sites web d’utilité publique.
Vous pouvez suivre l’actualité du mouvement soit via Twitter soit en vous inscrivant avec votre compte Github.
Reactive Streams
James Ward a annoncé, durant son talk, le lancement de Reactive Streams. Il s’agit d’une initiative visant à standardiser les traitements asynchrones de flux sur la JVM. Les grands noms de la JVM sont contributeurs du projet : Oracle, RedHat, Twitter, TypeSafe, Pivotal, Netflix, etc. L’objectif est, à terme, d’intégrer ces travaux dans une future version du JDK.
Un premier brouillon de la spécification est disponible. Si vous souhaitez vous lancer, vous pouvez parcourir les sources du projet sur Github.
Un article d’InfoQ est disponible sur le sujet : Les Reactive Streams avec Akka Streams.
Abordons à présent les tendances technologiques.
La réactivité c’est maintenant !
Devoxx France 2014 a comporté de nombreux talks avec le mot magique “réactif” : Les Applications Réactives : un nouveau paradigme pour relever les défis de l’économie numérique, Building Reactive Apps, Reactive Angular, Des applications réactives avec Spring, AngularDart et Websocket, Basses latences, hauts débits : les secrets de la finance pour avoir des systèmes réactifs, etc.
Donc si vous souhaitez être “tendance” aujourd’hui, soyez “réactif” ! Ca y est c’est le moment !
Le Big Data, le driver technologique
Devoxx France 2014 m’a conforté dans l’idée que j’avais du Big Data comme moteur des nouvelles architectures et des nouvelles technologies.
Le Big Data est arrivé avec des techniques qui lui étaient indispensable (NoSQL, Scalabilité horizontale, parallélisme, cloud, etc.) et finalement ces techniques sont en train de gagner peu à peu les projets Small Data ou Big Code.
Prenons l’exemple du NoSQL. Je me rappelle encore il y a quelques années, le NoSQL était présenté comme une solution en réponse aux limites des bases de données relationnelles. Le discours a, depuis, bien évolué et d’autres atouts ont apparu. L’accroche de MongoDB c’est “Agile et Scalable” (noter bien le “Agile” en premier). Aujourd’hui, le NoSQL séduit de plus en plus, je vous invite à visiter la page MongoDB Production Deployments et à scroller jusqu’à ce que vous en ayez marre :) Et ce ne sont pas tous des projets avec des données monstrueuses.
Le Big Data encourage l’application des principes de programmation réactive et nous voilà tous plonger dedans en ce moment.
Le Big Data possède encore de nombreuses ressources qui sont encore à bonnes distances des projets habituels d’entreprise. Si vous souhaitez avoir une vision générale des briques et des outils du domaine, je vous recommande le talk Lambda Architecture - Choose your tools for Real-Time Big Data (slides) avec Florian Douetteau.
Pour un retour d’expériences, regarder plutôt du côté de Realtime Web avec Akka, Kafka, Spark et Mesos (slides).
Il y a probablement dans ces outils des fondements de ce qui va devenir la norme de demain et tout le monde sait que demain c’est aujourd’hui :)
Frontend/Javascript
J’ai vécu Devoxx France 2013 comme un événement qui criait :
Javascript c’est cool, c’est prêt pour l’entreprise ! Vas-y mon ami !
Il y avait plusieurs sessions dans ce sens : Frontend live Coding, AngularJS, ou le futur du développement web, Du Javascript Propre ? Challenge Accepted, etc.
Sur l’axe Frontend, j’ai vu Devoxx France 2014 comme un événement qui criait cette fois-ci :
Maintenant que vous avez adopté Javascript, vous savez, dans Javascript il y a aussi “The Bad Parts”. Jettez un oeil aux alternatives, on ne sait jamais ;)
La session JavaScript, the next big … bytecode (slides) est très intéressante sur ce sujet. Vous apprendrez :
- qu’il y a plus de 170 langages/transpileurs qui génèrent du JavaScript.
- Les leaders de la transpilation sont : TypeScript, CoffeeScript, Dart, ASM.JS
- Dart est le plus complet, ASM.JS très prometteur, TypeScript utilisable à court terme et CoffeeScript utilisable mais attention aux erreurs trop fréquentes de syntaxe.
Je note l’opération séduction de Dart qui met sur la table les atouts suivants :
- Je suis un langage typé comme Java, tu connais Java ? Viens, je te promets que ça sera facile !
- Je suis nativement plus performant que Javascript. Je serai un jour dans Chrome, donc tu pourras m’utiliser directement pour bénéficier de mes performances.
- Je vais devenir un standard un jour. Je rêve secrètement que Firefox, Safari et Internet Explorer m’implémente ;)
- N’aies pas peur de moi, je sais transpiler du javascript comme tout le monde.
- Hey ! Tu aimes AngularJS ? Moi aussi je sais faire !.
Si vous vous êtes lancé sur des projets AngularJS, les slides de la session Au secours mon code AngularJS est pourri ! (slides) va vous intéresser. Vous y trouverez un recueil de bonnes pratiques applicables immédiatement.
Les performances
J’ai suivi deux talks qui faisaient un focus sur les performances :
Web performances, regardons les résultats de près (slides).
Une application est réalisée avec différentes technologies (Java EE/JAX-RS, NodeJS/Express, Play2/Scala, Undertow, Vertx, Finatra) puis des tests de charge sont réalisés sur chaque implémentation. Ce que je retiens de ce talk :
- Il faut faire très attention aux API utilisés.
Pour l’application NodeJS, utiliser
res.send(movies)
à la place deres.sendfile(...)
rendait l’application environ 14 fois moins performante. - Lors d’un test de charge, n’ayez pas l’injecteur et l’application sur la même machine. Les résultats seront probablement très éloignés de la réalité.
- Gatling c’est super ! Ca je le savais déjà ;)
- Contrairement à ce que pensaient les participants, Java EE/JAX-RS est très performant et a remporté quelques combats.
- Je regrette que les ressources n’aient pas été monitorées pour avoir une idée des différences de consommation.
Basses latences, hauts débits : les secrets de la finance pour avoir des systèmes réactifs (slides).
Il s’agit là d’un talk de très bonne qualité qui présente :
- L’essentiel des métiers de la finance
- Différentes approches qui ne fonctionnent pas toujours pour supporter du haut débit : mono thread, un thread par élément, un pool de thread, multi tasks / thread pool.
- Le pattern sequencer, la notion de conflation
- Une dose de principes réactifs.
La révolution Docker
Je n’ai pas pu participer à la session La révolution Docker (slides). Cette session était très attendue, la salle était pleine avant le début de la session.
Docker est donc un outil qu’il faut regarder de près aujourd’hui. Vous pouvez une introduction à Docker sur le blog Le Touilleur Express.
Si vous venez au BreizhCamp 2014 prochain, il y aura une session Demarrer avec Docker.
Java & Co, l’heure est à la simplification !
Comme le montre mon parcours, je n’ai pas participé à beaucoup de sessions sur Java ou Java EE ou Spring ou etc. Je profite généralement des conférences pour élargir mes horizons. Etant présent à la conférence et pour avoir parcouru plusieurs fois le programme, j’ai tout de même un ressenti.
Le moment est venu de faire simple avec Java. Il est temps de s’attaquer à la complexité de démarrer un projet Java et surtout de réaliser des applications simples sans sortir l’artillerie lourde. Il y a déjà des existants comme Play! Framework et cette tendance se poursuit.
Le projet Spring Boot a cet objectif et se veut être le produit phare du moment dans l’écosystème Spring. Voici une classe Java, avec une méthode main() qui démarre un container (tomcat ou jetty), expose un service REST sécurisé par OAuth et avec le support de CORS, gère les accès à la base de données. Le tout en moins de 300 lignes de code (pour Java c’est une révolution !) On peut donc dès aujourd’hui avoir des applications simples, utiles qui tiennent raisonnablement dans un seul fichier !
Xavier Hanin a présenté le framework RESTX. Ce framework regroupe pleins de bonnes idées pour développement des services REST : le rechargement à chaud, des outils pour tester ses services REST, une configuration avancée par annotation, des jeux de données fournies par le framework, etc.
José Paumard a présenté 50 nouvelles choses que l’on peut faire avec Java 8 (slides). Java 8 vient simplifier beaucoup de choses : les dates, les manipulations de collections, traitements parallèles, etc.
Si vous travailler avec Java au quotidien, votre nouveau défi est à présent de faire simple après avoir fait très très compliqué !
D’autres ressources ?
Consulter la page suivante : Ils ont parlé de nous.