Soirée Groovy au Paris JUG
Guillaume Laforge, chef de projet de Groovy, et Fabrice Robini Architecte chez OCTO Technology ont fait deux présentations très sympathiques hier soir à l’ISEP. Après une introduction à Groovy, la démonstration de Grails en 1h a achevé de convaincre le plus sceptique de la simplicité de Groovy et de Grails.
Qu’est-ce que le Paris JUG ?
Pour ceux qui ne connaissent pas le Paris JUG, en quelques mots voici un résumé des derniers épisodes. Le Paris JUG (Java User Group) est un groupe de passionné de la plateforme Java qui se retrouve chaque deuxième mardi du mois à Paris. L’idée est de se retrouver pour partager et se rencontrer, tout en assistant à des présentations sur Java ou des domaines apparentés. Des sponsors (Xebia, Aneo, Valtech, BK Consulting, Zenika…) permettent d’aider et de financer chaque soirée afin que le concept reste gratuit. Vous pouvez retrouver les anciens articles du touilleur sur le jug.
Hier soir la soirée s’est déroulée dans les locaux de l’ISEP, école en informatique et électronique. Le thème était le langage Groovy. Pour une fois que nous avons la chance d’avoir un contributeur français majeur comme Guillaume, c’était l’occasion d’assister à une présentation plutôt technique.
Le Paris JUG a besoin de volontaires
L’équipe recherche des contributeurs pour participer aux blogs du Paris JUG, ainsi que pour effectuer des revues de livres. Si vous souhaitez participer et que vous vous sentez prêt pour écrire, profitez de la plateforme du JUG pour lancer votre Trifouilleur Express 🙂
La présentation Groovy
Je vous parlerai plus de l’ambiance et des têtes que j’ai croisé, je ne vais pas refaire une présentation de Groovy sur ce billet, juste quelques lignes et un peu de code. Nous étions environ 80, avec la présence d’Alexis Moussine-Pouchkine au fond de la salle (monsieur Glassfish). Pas mal de monde sans battre le record de la soirée MDA/Flex.
Guillaume Laforge que l’on ne présente plus, ou alors très vite (OSSGTP,Project Lead Groovy, SpecLeader de la JSR-251 et donc auteur de Groovy), a commencé par le HelloWorld classique sous la forme d’une classe simple. Premier point à retenir : Groovy génère du byte-code Java. Un fichier Groovy avec la syntaxe Java, compile et fonctionne sans problèmes avec une JVM, le résultat de l’interprétation c’est du byte-code. Il charge un fichier groovy, l’exécute, et un petit « Hello World » s’affiche. L’exercice ensuite consistera à alléger le fichier jusqu’à ce que le code soit 100% groovy. Il explique de cette façon plusieurs concepts du langage Groovy. Orienté objet, avec un support des closures plus simple que ce qui se prépare pour Java 7 ou 8, Groovy est orienté productivité et simplicité. Attention cependant, derrière cette simplification on peut penser que l’on retire des bequilles et une certaine forme de qualité à l’écriture du code. La simplification s’acompagne d’un déshabillage du code Java.
Voici l’exemple de code avant/après afin de vous donner une idée.
/** * Simple HelloWorld */ public class HelloWorld { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void sayHello() { System.out.println("Hello "+getName()); } public static void main(String[] args) { HelloWorld hello=new HelloWorld(); hello.setName("Nicolas"); hello.sayHello(); } }
Guillaume s’attaque à transformer ce fichier en programme Groovy en retirant tout ce qui n’est pas nécessaire. Groovy travaille par convention, l’ensemble de ce qui n’est pas précisé est implicite. Une class est publique, un attribut a un getter et un setter, etc.
Voici le résultat en Groovy
class HelloWorld { def name def greet() { "Hello ${name}" } } def helloWorld = new HelloWorld() helloWorld.name = "Nicolas" println helloWorld.greet()
J’ai retrouvé la présentation de Guillaume sur Internet avec ses explications sur dZone.
Groovy est un langage dont la syntaxe est dérivée de Java, tout en étant plus simple. La présentation de Guillaume était claire quoiqu’un peu courte. Les questions du public : quid des performances ? guillaume reconnaît qu’il y a un impact bien que Groovy soit le plus rapide des langages de scripts avancés de la future plateforme Java. Une autre question : quelle est sa préférence sur le chantier des Closures en Java 7/8 ? quelle serait sa préference d’implémentation ?
Il explique que les Closures pour Java apportent une complexité qui n’est pas adaptée à ce qu’est Java aujourd’hui. Groovy propose des closures implicites et faciles, dont la syntaxe reste simple. Il pense que les closures dans Java 7/8 apporteront trop de complexité, surtout sur la syntaxe, avis que je partage largement.
Grails, Grails, Grails
Fabrice d’OCTO prend ensuite les commandes après un buffet très sympathique organisé entre les 2 présentations. Au passage je croise Dimitri qui m’explique qu’il quitte Prima Solutions pour rejoindre eXo Platform. Je croise Patrice un des développeurs d’eXo qui m’explique que l’équipe est constituée d’une dizaine de personnes en France. Un petit verre avec Nicolas et Florent de Jaxio, ainsi que des personnes de Xebia et de Valtech et il est temps de reprendre la séance.
Revenons à la présentation de Grails : simple, puissante et intéressante. En une heure Fabrice et Guillaume jouent une petite pièce de théâtre afin de nous proposer de développer une application Web de gestion de CD en quelques clics. On voit la simplicité et la puissance de Grails, et surtout un gain en productivité. La présentation a été effectué aux universités du SI je crois.
Sur ce je vous laisse, boulot, boulot, boulot… Pas assez de temps.
Le monsieur avec la chemise blanche, les lunettes et le bouc au premier rang : c’est moi.
Assis à côté de Nicolas Romanetti sur ma gauche, le cofondateur de Jaxio.
Merci pour ce compte rendu. C’est très apprécié quand on a loupé un JUG si intéressant.
Tom