Maîtriser Groovy : Guide Débutant pour le Scripting sur la Plateforme Java
Qu'est-ce que Groovy ?
Apache Groovy est un langage orienté objet, compatible avec la syntaxe Java, qui s'exécute sur la JVM. Il se compile en bytecode Java, donc tout système avec un Java Runtime Environment peut l'exécuter. Groovy ajoute le typage dynamique, les closures, le support DSL et une syntaxe concise, en faisant un compagnon idéal plutôt qu'un remplacement pour Java.
Pourquoi Utiliser Groovy ?
- Langage dynamique et agile pour le prototypage rapide
- Intégration transparente avec les bibliothèques Java existantes
- Naturel pour les développeurs Java – courbe d'apprentissage minimale
- Code plus concis et expressif que Java
- Peut être mélangé librement avec Java – utilisez autant ou aussi peu que vous voulez
Historique de Groovy
- 2003 – Développé par Bob McWhirter & James Strachan
- 2004 – Ébauché comme JSR 241 (abandonné)
- 2005 – Relancé par Jeremy Rayner & Guillaume Laforge
- 2007 – Version 1.0 publiée
- 2012 – Version 2.0 publiée
- 2014 – Version 2.3 (supporte Java 8)
- 2015 – Devient un projet Apache Software Foundation
Fonctionnalités Clés de Groovy
- Syntaxe littérale pour listes, maps, plages, regex
- Multiméthodes et capacités de métaprogrammation
- Typage dynamique et statique optionnel
- Surcharge d'opérateurs et syntaxe concise (pas de point-virgules ou parenthèses nécessaires dans de nombreux cas)
- Closures et MetaObject Protocol pour le scripting puissant
- Compatibilité totale avec le bytecode et les bibliothèques Java
Comment Installer Groovy
- Assurez-vous que Java est installé – guide d'installation Java
- Téléchargez l'installateur depuis Page de téléchargement Groovy
- Exécutez l'installateur, sélectionnez la langue et cliquez sur OK
- Cliquez sur SUIVANT sur l'écran d'accueil

- Acceptez les termes de la licence

- Sélectionnez les composants à installer et cliquez sur SUIVANT

- Choisissez le répertoire d'installation et cliquez sur SUIVANT

- Définissez le dossier du menu Démarrer et cliquez sur SUIVANT

- Terminez l'installation (chemins par défaut) et cliquez sur SUIVANT

- Après l'installation, lancez Groovy Console depuis le menu Démarrer pour vérifier

Groovy Hello World
Version Java :
public class Demo {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Équivalent Groovy – une seule ligne :
println "Hello World."
Groovy supprime le besoin de point-virgules, parenthèses et le verbeux System.out.println.
Variables
Java nécessite des types explicites :
public class Demo {
public static void main(String[] args) {
int x = 104;
System.out.println(x);
// x = "Guru99"; // Erreur de compilation
}
}
Groovy supporte le typage dynamique via def :
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Sortie :
class java.lang.Integer class java.lang.String
Les chaînes multilignes utilisent des guillemets triples :
def x = """Groovy chez Guru99""" println x
Opérateurs
Groovy supporte les catégories habituelles :
- Arithmétiques :
+ - * / % - Relationnels :
== != < <= > >= - Logiques :
&& || ! - Bitwise :
& | ^ ~ - Affectation :
= += -= *= /= %=
Boucles
Boucle for Java :
for (int i = 0; i <= 5; i++) {
System.out.println(i);
}
Équivalents Groovy :
0.upto(4) { println "$it" }
2.upto(4) { println "$it" }
5.times { println "$it" }
0.step(7, 2) { println "$it" }
Prise de Décision
| Instruction | Description |
|---|---|
| if | Exécuté quand la condition est vraie. |
| if/else | Exécute la branche vraie ; sinon la branche else. |
| if imbriqué | Branches conditionnelles multiples. |
| switch | Alternative plus propre pour la logique multi-branches. |
| switch imbriqué | Supporté en Groovy. |
Listes
Une liste est une collection ordonnée de références, définie avec des crochets.
- Liste de chaînes :
['Angular', 'Nodejs'] - Liste mixte :
['Groovy', 2, 4.6] - Liste d'entiers :
[16, 17, 18, 19] - Liste vide :
[]
Méthodes de liste courantes :
| Méthode | Description |
|---|---|
| add() | Ajouter une valeur à la fin. |
| contains() | Vrai si la valeur existe. |
| get() | Élément à l'index. |
| isEmpty() | Vrai si la liste n'a pas d'éléments. |
| minus() | Retourne nouvelle liste moins les éléments spécifiés. |
| plus() | Retourne nouvelle liste avec éléments ajoutés. |
| pop() | Supprimer le dernier élément. |
| remove() | Supprimer l'élément à l'index. |
| reverse() | Retourne liste inversée. |
| size() | Nombre d'éléments. |
| sort() | Retourne copie triée. |
Exemple :
def y = ["Guru99", "est", "Meilleur", "pour", "Groovy"]
println y
y.add("Apprentissage")
println(y.contains("est"))
println(y.get(2))
println(y.pop())
Sortie :
[Guru99, est, Meilleur, pour, Groovy] true Meilleur Apprentissage
Maps
Une map est une collection de paires clé-valeur.
- Exemple :
[Tutoriel:'Java', Tutoriel:'Groovy']– cléTutorielavec deux valeurs. - Map vide :
[]
Méthodes de map :
| Méthode | Description |
|---|---|
| containsKey() | Vérifier une clé. |
| get() | Retourner la valeur pour une clé. |
| keySet() | Ensemble des clés. |
| put() | Ajouter ou remplacer une paire clé/valeur. |
| size() | Nombre d'entrées. |
| values() | Collection des valeurs. |
Exemple :
def y = [prenom:'Jen', nom:'Cruise', sexe:'F']
print y.get("prenom")
Sortie :
Jen
Closures
Une closure est un bloc de code traité comme un objet, similaire à un lambda.
Closure simple :
def maClosure = { println "Ma Première Closure" }
maClosure()
Avec paramètres :
def somme = { a, b, c -> return a + b + c }
println somme(1, 2, 3)
Sortie :
6
Groovy vs Java
| Groovy | Java |
|---|---|
| Modificateur d'accès par défaut est public. | Par défaut package-private. |
| Getters/setters automatiques pour les champs. | Doivent être définis manuellement. |
| Interpolation de chaînes avec guillemets doubles. | Pas d'interpolation. |
| Typage optionnel. | Typage obligatoire. |
| Pas de point-virgules nécessaires. | Point-virgules requis. |
Chaque script étend automatiquement la classe Script. | Nécessite public static void main pour l'exécution. |
Mythes Courants
| Mythe | Réalité |
|---|---|
| Groovy est seulement pour le scripting. | Il est polyvalent : frameworks web, traitement de données, etc. |
| Groovy est purement fonctionnel. | Il emprunte des concepts fonctionnels mais reste un langage OOP. |
| Groovy est idéal seulement pour TDD. | Il supporte TDD mais est utile dans de nombreux scénarios. |
| Groovy est limité à Grails. | Grails est un framework populaire, mais Groovy fonctionne indépendamment. |
Inconvénients de Groovy
- Le démarrage JVM peut être plus lent, affectant les scripts rapides.
- Pas universellement adopté hors des écosystèmes Java.
- Moins pratique sans IDE.
- Performance d'exécution peut être en retard par rapport à Java.
- Empreinte mémoire plus élevée.
- La connaissance de Java est essentielle pour une utilisation efficace.
Outils Groovy Essentiels
- groovysh – Shell interactif en ligne de commande.
- groovyConsole – GUI Swing pour exécuter des scripts.
- groovy – Interpréteur en ligne de commande pour exécuter des scripts.
Exemples d'utilisation :
groovysh
- Saisir des instructions ou des scripts entiers interactivement.
groovyConsole
- Éditeur minimal pour écrire et exécuter du code Groovy.
groovy
- Exécute des scripts Groovy depuis la ligne de commande.
Résumé
- Groovy est un langage orienté objet pour la plateforme Java.
- Il offre une intégration transparente avec les bibliothèques Java.
- Fonctionnalités clés : typage dynamique, closures, syntaxe littérale.
- Groovy supporte les opérateurs standards, contrôle de flux, collections et maps.
- Il automatise getters/setters et élimine le boilerplate.
- Bien qu'il puisse avoir des compromis de performance, ses gains de productivité sont significatifs.
- Les outils Groovy comme groovysh, groovyConsole et l'interpréteur groovy rationalisent le développement.
Java
- Maîtriser les boucles for en Java : Syntaxe, exemples et bonnes pratiques
- Construire un robot évitant les obstacles avec Raspberry Pi – Guide débutant
- Fraiseuses CNC pour débutants : maîtrisez le marché avec une précision sans effort
- Maîtriser PowerShell : Guide du débutant pour un scripting puissant
- Maîtriser la programmation C : Tutoriel PDF complet pour débutants
- Tutoriel Java Arrays : Déclaration, création et initialisation – Code d'exemple
- Programme Java pour identifier les nombres d'Armstrong avec une boucle for
- Vérificateur de nombre palindrome en Java : algorithmes avec boucles while et for
- Fabrication métallique 101 : guide clair pour les débutants