Xtend est un langage sous licence Eclipse qui est compilé en Java, afin d’être exécuté sur la JVM. C’est un langage se basant sur Java, sa syntaxe, son système de type et son typage statique, tout en étendant ses capacités. Xtend ne vise pas à remplacer Java, mais à être utilisé dans des situations où son ancêtre ne brille pas.
Xtend facilite l’utilisation de Java en supprimant le « bruit » inutile, rendant le code plus facile à écrire et à lire :
- l’inférence de type (sur les variables, les types de retour, les boucles
for()
) ;
- l’accès aux propriétés d’un objet de la même manière que les champs ;
- les points‐virgules optionnels ;
- les parenthèses optionnelles lors d’appels de méthodes sans arguments ;
- l’utilisation du return optionnel (la dernière expression étant la valeur de retour).
Xtend étend Java en lui apportant les closures, les méthodes d’extension, le multiple dispatch, la surcharge des opérateurs, un switch()
bien plus puissant que celui provenant du C, les chaînes de caractères multi‐lignes et un système de templates permettant d’avoir une indentation correcte du template, mais aussi du texte généré.
Xtend est intéressant car il apporte à Java des capacités assez similaires aux dernières versions de C#, tout en allant au‐delà. Il dispose déjà d’une prise en charge avancée dans Eclipse : coloration syntaxique, aide au contenu, quelques ré‐usinages (refactoring), la navigation, etc.. Enfin, le fait qu’il soit compilé en Java et non en bytecode permet de l’utiliser avec Android et GWT, par exemple.