[Paris JUG] Soirée Java.next()

Hop, ça s’est déroulé le 13 Mars 2012, et c’était mon premier Paris JUG !! Tadaaaaaaaaaaaaa !! Début à 19h30 pétante, et autant dire qu’il faut être à l’heure, vu que c’était encore une salle comble de 200 personnes… Donc si on veut être un peu devant… Bon mais je chipote parce qu’en vrai tout est prévu pour que tout le monde ait un certain confort: Speaker équipé d’un micro, les slides sont reproduits sur des écrans intermédiaires à mi-salle, fond de la salle un peu surélevé, on sent direct l’habitude de l’équipe…

Bref, le programme :

Première partie : Java.next() / Jigsaw

par Alexis Moussine-Pouchkine.

Alexis est rentré très vite dans le sujet en faisant un petit historique de Java depuis sa création, jusqu’à maintenant et Java 7. Il nous a fait un petit rappel des fonctionnalités (Project Coin, NIO2, Fork-Join, InvokeDynamic…), tout en insistant sur le fait que même si la plupart de ces fonctionnalités paraissent anecdotiques et plutôt léger pour une version majeure de Java, l’ensemble fournissait un ensemble de choses somme toute intéressantes…
Pour rappel, la présentation de Java 7 qui avait été faite au Toulouse JUG… : CLIC

Alexis a enchaîné avec la présentation de la JDK 8. Prévu pour mi-2013, cette vraie version majeure devrait arriver en même temps qu’une version adaptée de Netbeans. Le succès d’un langage est souvent lié à la qualité des outils disponibles, il paraissait important à Oracle de fournir tout de suite un IDE compatible à 100% avec toutes les nouvelles fonctionnalités de Java 8. On verra bien…

Donc qu’est ce qui est prévu ? Alors entre autres… :

  • Jigsaw
  • Lambda expressions
  • Java FX 3 ?

A priori le meilleur moyen de savoir où on en est, c’est d’aller voir directement sur le site d’OpenJDK… En effet, la totalité des nouvelles fonctionnalités sont structurées sous forme de projets indépendants qui seront intégrés, ou non, à la JDK finale.

Alors on va se pencher sur un des sujets qui nous intéresse le plus : Jigsaw, et le concept de Modularité.
Tout part d’un simple constat : il y a toujours eu un problème avec Java dans la construction des applications, le packaging, la publication… On pense tous à nos classpath, les problèmes de dépendance, tous nos scripts Ant pour gérer tout ça, et toutes les parties de la JDK inutiles qu’on embarque pour rien. Jigsaw est là pour remettre tout ça à plat, et c’est fait en plusieurs parties…

Modularity =
Grouping
+ Dependence
+ Versioning
+ Encapsulation
+ Optional modules
+ Module aliase

Bref, des vrais fichiers Java qui seront des modules et qui permettront de répondre à ces problématiques. Adieu Classpath !
Et quelques mots sur des options de packaging :
– javac a été modifié dans le prototype pour avoir une option supplémentaire : le modulepath

javac -modulepath mods src/com.foo.app/

– nouveau format de fichier jmod, qui va pouvoir packager les modules. C’est comme un jar.

– Jpkg permettra de générer des packages dans différents formats, genre debian, et ça c’est quand même très cool !

Bon mais c’est bien beau tout ça, mais ça pose un simple soucis de compatibilité… On ne remplacera pas les millers de jars du jour au lendemain par des modules. Comment fait-on depuis des années pour répondre à toutes ces problématiques ? Et bien nous avons des outils comme Maven. Et comment tout cela va-t-il pouvoir cohabiter ? On ne sait pas trop, mais ça sera « douloureux » ! 🙂

Alexis Moussine-Pouchkine a terminé par une petite démo d’un prototype de Jigsaw, avec création d’un module, compilation et packaging…

Vous retrouverez sa présentation au format PDF ici. En tout cas c’était très chouette… Je suis content de voir que ces problématiques sont enfin être prises en compte dans le monde Java natif. Mais n’est ce pas trop tard… ?

Deuxième partie : Le Buffet !!

Bon ok, je pourrais vous épargner ça… Mais c’était juste pour noter que quand même, le Paris JUG, c’est une machine bien rodée. J’ai pu constater que faire un buffet pour 200 personnes entre deux présentations, et bien ça ne leur posait pas de problème… Bravo à eux… Bon, petit bémol, dans le sud on reçoit les gens avec de la bière et du vin! Je comprends hein, mais la différence m’a fait sourire…

Redevenons sérieux avec la…

Troisième partie : Les Lambda Expressions

par Rémi Forax.

Je vais être très concis, parce que le sujet a été résumé (quoi que) par Nicolas Martignole himself, et c’est lisable à lire ici : http://www.touilleur-express.fr/2012/03/16/remi-forax-au-paris-jug/

Si je devais résumer en quelques mots mon impression… Déjà, bravo au speaker. Dynamique Maitre de conférence à l’université de Paris-Est, ça se voit qu’il aime son boulot et qu’il est impliqué à fond dans ce qu’il fait. Il aime expliquer, partager, on sent tout de suite qu’il maitrise son domaine. On a tous passé un bon moment je crois… En tout cas ça sortait de l’ordinaire !

Donc, les Lambda Expressions. Déjà, il faut souligner que c’est une fonctionnalité manquante à Java, mais présente dans d’autres langages (Scala, C#, etc…). Pour nous présenter la fonctionnalité, il a une approche intéressante: les lambda, c’est juste la possibilité de sous traiter du code. Au lieu de faire des Runnable qui vont être exécutés dans des threads, on va passer directement le code a exécuter dans la lambda. Economie de code… Parallélisme, distribution, etc…

Mais ne le fait-on pas déjà d’une certaine manière dans Java avec les Inner Class à une seule méthode ? Genre avec l’implémentation de listeners à la volée ? Bah si… Donc le but, c’est de simplifier tout ça en permettant de créer directement des Lambda. Il y aura de véritables impacts sur nos habitudes Java, avec par exemple l’ajout de code dans les interfaces… Si si… Pour plus de détails, se référer à l’article de Nicolas Martignole…

A noter que d’après Rémi Forax, ça sera intégré à Java 8.

Conclusion

Avec Jigsaw et les Lambda, Alexis et Rémi nous ont montrés que Java 8 serait un véritable tournant du langage pour un objectif clair : rattraper les fonctionnalités manquantes que l’on peut trouver couramment à côté. Franchir le pas pour les développeurs promet d’être compliqué, mais tout cela sera passionnant !
Bref, une chouette première pour moi au Paris JUG !

En avril, pas de Paris JUG, parce qu’il y a….. DEVOXX France ! J’y serai, et vous pourrez retrouver ici-même un maximum de compte rendu ! Enfin j’espère…

LB.

nb : les photos de la soirée sont consultables sur le site du Paris JUG

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *