Groovy User Group #1

Groovy User Group - Les organisateurs

Et un UG de plus …

Cette fois ci c’est le Paris Groovy Grails User Group qui a tenu sa première réunion le 10 juin chez VMWare. Deux autres sponsors ont également participé à cette soirée, Doc4Web qui a fournit le buffet et Balsamiq.

Une quarantaine de personnes pour cette première session (le programme), avec les habitués, quelques nouvelles têtes par rapport aux user groups Java, et pas mal de filles (environ 10% ce qui est un bon score pour des conférences techniques).

Pour le lancement de ce groupe, une session de présentation : quelles seront les activités de ce groupe, qu’est ce que Groovy, les principaux concepts, pourquoi c’est cool, et un tour d’horizon des principaux projets qui gravitent autour de Groovy.

Dans les activités prévues les classiques des UG (présentations, débats, sorties restau) mais aussi une originalité : organiser des soirées de coding.

Vous pourrez suivre l’activité de ce groupe sur Meetup à l’adresse suivante http://www.meetup.com/Paris-Groovy-Grails/

Groovy

Guillaume Laforge nous a présenté les principales caractéristiques de Groovy, le langage qui nous simplifie la vie :

  • Un langage dynamique
  • Des Closures, des blocs de code réutilisables que l’on peut manipuler comme des variables
  • Le typage optionnel
  • Le support de l’expression langage ( ${mavariable} )
  • les GString qui permettent d’étendre les chaînes (support de l’expression langage, chaînes sur plusieurs lignes, padding …)
  • Les facilité de création d’initialisation des collections
    Une liste fruits = ['Pomme', 'Orange']
    ou une map contact = [prenom='Guillaume', nom='Laforme']
  • La facilité de manipulation des documents XML (XmlParser, MarkupBuilder)
  • La facilité de création  de requêtes JDBC, d’IHM Swing ou plus généralement l’utilisation de templates et de DSL via les MarkupBuilder
  • Des opérateurs rigolos comme l’opérateur elvis ?: qui permet de simplifier l’écriture de l’opérateur ternaire en nom ?: 'anonyme' dans le cas où on veut juste vérifier que le nom existe ou l’opérateur ?. qui permet d’écrire un chemin de navigation dans des objets sans devoir vérifier la présence de valeur nulle à chaque étape
  • La manipulation de fichiers ou de résultats de requêtes SQL aussi simple que manipuler une collection

Groovy Elvis operator

Elvis operator

Pourquoi l’adopter ?

  • Tourne dans la JVM, portable et en général déjà présente
  • Intégration très complète avec Java (du code Java fonctionne dans Groovy même si ça n’est pas le but et les librairies Java sont utilisables
  • Prise en main très rapide pour les développeurs Java
  • Rapidité d’écriture du code

Pour avoir un peu codé en Groovy, c’est vrai que  la prise en main par un développeur Java est rapide, en particulier si on a l’habitude d’autres langages de scripting (Python dans mon cas) et de la programmation fonctionnelle.

C’est terriblement pratique pour écrire le code de test ou des scripts qui moulinent des fichiers et génèrent des rapports. Il y a bien sûr une contrepartie à cette productivité. Les manipulations de fichiers ne sont pas aussi instantanées que dans mes scripts Python et le débugging n’est pas toujours simple lorsque le typage optionnel ne produit pas le type qu’on suppose. Mais dans l’ensemble ça permet de réaliser très vite des outils dont on a besoin.

Groovy User Group #1

Groovy User Group - Les participants (si, si, il y a deux autres filles au fond)

Après une pause au buffet, Guillaume nous a présenté l’écosystème Groovy

L’écosystème

Groovy est utilisé dans un grand nombre d’outils de test ou de reporting. Ces activités ne sont pas critiques et la facilité d’usage de Groovy permet de mettre en pratique rapidement ses idées.

Il est également utilisé (via Grails en particulier) pour le développement d’IHM de ces outils.

Enfin un autre usage privilégié est l’utilisation de Groovy comme langage de commande, pour exprimer des règles métier ou des DSLs.

Même si Groovy peut utiliser les librairies Java, de nouvelles librairies plus dans l’esprit Groovy et plus intégrées sont également mises au point. Et pour finir, tous les outils pour faire du Groovy.

Voici un tour d’horizon

La gestion de dépendances :

  • Grape (The Groovy Adaptable Packaging Engine or Groovy Advanced Packaging Engine) et la commande @grab

Des librairies complémentaires :

Des frameworks applicatifs écrits en Groovy :

Des frameworks de test écrits en Groovy :

Des outils de build :

Un discours du directeur technique de VMWare, quelques questions des participants et on attend déjà la prochaine session pour en voir plus. En attendant, nous voilà avec plein d’idées en tête pour se simplifier la vie et des tas de nouveaux trucs à essayer.  Intéressés mais un peu paresseux  ? Grace à une application Gaelyk, vous pouvez tester Groovy en ligne sans rien installer.

La prochaine rencontre aura lieu le 20 Juillet :  http://www.meetup.com/Paris-Groovy-Grails/boards/view/viewthread?thread=9320461