Developpez.com

Le Club des Développeurs et IT Pro

Groovy 2.3 disponible avec le support de Java 8

La version majeure du langage pour la JVM améliore son analyseur syntaxique JSON

Le 2014-05-19 04:02:36, par Arsene Newman, Expert éminent sénior
Guillaume Laforge, chef du projet Groovy, a récemment annoncé la sortie d’une nouvelle version majeure du langage. Cette dernière intervient presque deux ans près la sortie de la version 2.0 (juillet 2012).

Pour rappel, Groovy est un langage agile et dynamique destiné à la plateforme Java. Il est inspiré de plusieurs langages comme : Python, Ruby et Smalltalk.

L’une des principales nouveautés avec la version 2.3 est la prise en charge de Java 8, ce qui représente une avancée majeure pour le langage et une amélioration des performances au niveau du bytecode JVM. Toutefois, d’autres nouveautés sont au programme comme :
  • l’introduction du nouveau concept « Traits », qui vient s’ajouter aux classes et aux interfaces. Il permet de décrire la réutilisation d’un comportement par une classe ;
  • l’amélioration des performances de la transformation du code lors de la compilation à travers l’ajout de certaines méthodes :@TailRecursive; @Builder; @Sortable; @SourceURI et la mise à jour de d’autres : @Delegate; @BaseScript ;
  • l’introduction du nouveau module NIO (NIO2) pour Java 7 et versions suivantes ;
  • le support de JUnit 4 à travers la nouvelle classe GroovyAssert ;
  • l’amélioration des performances de l’analyseur syntaxique JSON et l’ajout du JsonSlurper pour faciliter et étendre les possibilités de l’analyseur syntaxique JSON ;
  • l’amélioration de certains outils comme : Groovysh et GroovyConsole ;
  • l’introduction du template du langage : markup template.


Ainsi, avec l’introduction de ces nouveautés, tout porte à croire que Groovy a de beaux jours devant lui. Reste à savoir si l’avenir nous le prouvera rapidement ou pas.

Source : Notes de version

Et vous ?

Utilisez-vous Groovy ? Que pensez-vous des nouveautés introduites dans cette nouvelle version ?
  Discussion forum
5 commentaires
  • barmic
    Membre actif
    Ça tombe bien groovy est typé (pas forcément statiquement c'est optionnel).
    Ça en dit long sur ta maîtrise du sujet (pour quelqu'un d'aussi pédant)…
    Sais-tu au moins qu'il n'y a pas que le typage statique et le non typage ? (il y a différentes forces, le typage peut être dynamique (ducktyping), tu peux avoir de l'inférence de type,…)
    Le problème n'est pas souvent le système de type, mais plus l'incapacité des développeurs à s'en servir correctement. Quelque soit le système de type, c'est un outil du développeur et ce dernier doit s'en servir en connaissance de cause, on écris pas un programme statiquement typé à la C++ comme on écris un programme haskel qui utilise l'inférence de type. C'est la volonté d'utiliser un langage au typage dynamique de la même façon qu'on écris un programme Java qui pose problème.

    Mis à part les lambda, il reste encore beaucoup de différence entre Java (même 8 ou ce que sera 9) et groovy. Groovy est bien plus agréable pour faire certains pattern comme la composition et cette version en ajoute d'autres avec les traits ou les builders. Le fait de permettre d'appliquer explicitement la récursion terminale est très pratique et permet d'écrire des algorithmes très expressifs tout en restant performants.
  • professeur shadoko
    Membre chevronné
    Envoyé par super_navide
    Je pense que Java 8 avec les lambda rend totalement dispensable groovy , les langages non typé sont une plaie pour la maintenance et les études d’impact.
    Non je pense que groovy est a éviter.
    Comme toujours dans les guerres de religion il faut replacer les choses dans un contexte.
    On peut tout à fait argumenter que Groovy est à éviter dans certains contextes et est très utile dans d'autres.
    Exemples:
    - je travaille sur un très gros projet international qui implique de nombreuses équipes: c'est du Java avec tous les avantages d'un typage fort et d'une modularité tout à fait gérable
    - dans ce même projet certains programmes de test sont écrit en Groovy: c'est sensé car ici il s'agit pratiquement de scripts qu'on modifie rapidement (c'est très court)
    - toujours dans ce même projet on fait des maquettes en Groovy pour explorer des concepts (ce sera des codes jetables ensuite) .... quel mal à ça?
    - mais il y aussi dans le "corps" du projet un petit DSL écrit en Groovy pour exploiter une ressource de configuration plutôt complexe : les utilisateurs ont été réticents au début (XML quel bonheur n'est ce pas?) puis ont découvert les charmes d'un DSL plus dynamique. Personne n'en est mort (jusque là)
  • Philippe Bastiani
    Membre éprouvé
    Envoyé par super_navide
    Je pense que Java 8 avec les lambda rend totalement dispensable groovy , les langages non typé sont une plaie pour la maintenance et les études d’impact.
    Non je pense que groovy est a éviter.
    Bonjour Super_navide,
    Pourquoi parles tu d'un langage non typé
    Tu peux par exemple écrire
    Code :
    1
    2
    String txt= "typage" ... typage fort à la Java
    def txt= "typage" ... typage dynamique de Groovy
    Bref, Groovy te laisse le choix d'un typage statique ou d'un typage dynamique ! Bref, je vois cette approche comme un plus bien que je sois partisan du typage fort...
    Réduire la comparaison Groovy/Java aux lambdas est, IMHO, trop rapide ! Groovy en matière de programmation fonctionnelle apporte pas mal de chose qu'il faudrait aussi comparer à Java8...
    Ensuite Groovy t'apporte des facilités en matière de script et/ou DSL (c.f. gradle par exemple).

    Donc non Super_navide, dans certains contextes Groovy peut être préférés à Java !

    A+
    Philippe

    P.S. : il serait intéressant que les experts Groovy nous montrent les différentes approches fonctionnelles de Groovy avec celles de Java8 !
  • vladimir1118
    Futur Membre du Club
    Il est dommage que les gens ne puissent plus écrire de messages sur les forums sans devenir agressifs et insulter les autres qui ne font qu'émettre un avis.
    Je pense que le message de super_navide est très clair et n'a rien de "pédant". Il exprime simplement la difficulté de maintenir et faire évoluer une application importante qui a été écrite dans un langage n'ayant pas un typage statique fort (l'expression "langage non typé" est très usuelle et comprehensible par tous). C'est l'avis de nombre de développeurs et un fan de Groovy peut argumenter en faveur de ce langage avec de vrais arguments et de façon pacifique. Insulter quelqu'un via internet n'est pas vraiment une preuve de courage, c'est simplement le témoignage de son incapacité à participer à un vrai débat.
  • super_navide
    Nouveau Candidat au Club
    Je pense que Java 8 avec les lambda rend totalement dispensable groovy , les langages non typé sont une plaie pour la maintenance et les études d’impact.
    Non je pense que groovy est a éviter.