Plusieurs actualités autour d’Eclipse pour cet article…
Tout d’abord petit clin d’oeil, Eclipse souffle ses 10 bougies ! Super article retraçant l’histoire d’Eclipse, en partant d’IBM, par le consortium, ou la fondation, c’est à lire ici !
Eclipse a 10 ans !
Et alors que nous assistons à la valse des nouveaux langages, Eclipse a décidé de publier assez discrètement XTend, son langage maison. Bon alors attention, ce n’est pas vraiment un langage en tant que tel, mais propose plutôt un enrobage de JAVA pour gommer les petits défauts et proposer quelques améliorations.
« Embrace Java but kill the noise and add some sugar! »
Il faut tout d’abord comprendre que XTend n’est pas compilé en bytecode mais en Java. Le code généré est donc compréhensible par le développeur. Rien que par cet aspect, on comprend vraiment que XTend se veut être un enrobage du langage Java, et pas un « java-killer ». Le choix a sans doute aussi été fait pour permettre son utilisation dans d’autres cadres, comme GWT ou le développement Android j’imagine… Bien évidemment XTend se présente sous la forme de plugins Eclipse, tout simplement :). Je vous encourage à regarder les améliorations du langage sur le site, c’est assez chouette. Nous aurons entre autre les closure, les point-virgule optionnels, l’invocation automatique des getters-setters quand on appelle une propriété, blocs switchs facilités, et j’en passe. Un petit résumé sympa dans cette vidéo :
Ma petite critique, c’est que XTend essaye de faire ce qui devrait être déjà fait dans Java : Eclipse fournit des outils qui permettent d’anticiper les fonctionnalités Java 7 (dans l’esprit avec une simplification de l’écriture), ou Java 8. Bref, j’espère juste qu’XTend est un palliatif destiné à disparaître quand notre petit langage aura gommé tous ses petits défauts !
LB.
Pour Android, que xtend soit compilé en bytecode ne poserait pas problème car tout code java pour android est d’abord compilé en bytecode java (avec un compilateur java déjà existant, je ne sais pas lequel d’ailleurs. Celui d’oracle?), puis ce bytecode java est compilé en bytecode Dalvik (la VM d’android) puis compilé (ou JIT-té, au choix de l’utilisateur, depuis v2.1) en assembleur.
Par contre, pour GWT, quel est l’avantage? (je ne connais pas GWT)
GWT est entre autre un moteur de composants clients. Son intéret est que les composants sont instantiables côté serveur en Java, puis compilés en Javascript par GWT. Bref, rien n’empêche de rajouter une couche XTend, du moment qu’il y a l’étape Java à un moment du process initial !