Xtends : la fondation Eclipse lance un nouveau langage compatible Java
Qui allège et enrichit les codes sources

Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux


 Discussion forum

Sur le même sujet
Le , par Idelways, Expert Confirmé Sénior
La fondation Eclipse, qui fête son dixième anniversaire, a discrètement lancé un nouveau langage de programmation appelé Xtends.

Certainement en ligne en vue d'une annonce imminente, le site du langage tente de résumer le projet et ses motivations en une seule phrase : « Embrasser Java, mais éliminer le bruit et ajouter un peu de sucre ».

La fondation, satisfaite du langage qui a fait la renommée de son IDE, choisi donc l'approche des compilateurs. Le résultat final reste du « code Java lisible », fait savoir la fondation, mais les développeurs écriront dans une « alternative plus commode dans les situations où Java ne brille pas ».

Cette approche peut donc être assimilée à celle de CoffeeScript pour JavaScript, moins radical que les « java-killer » à profusion, souvent basés sur la JVM (machine virtuelle java).

Le projet de la fondation se présente modestement comme un ensemble de plug-ins qui viennent se greffer à une installation existante de l'IDE Eclipse, embarquant les Java Development Tools (JDT).

L'édition du code Xtends jouit donc des mêmes capacités d'édition de code Java, comme la coloration syntaxique, le renommage de refactorisation, l’organisation des imports, corrections rapides, survol riche...

Il n'y a donc pas de raison de se plaindre de l’absence d'outils dont souffre habituellement chaque nouveau langage. Xtends n'est même finalement presque que ça : « une fine couche autour du JDK qui interagit avec Java exactement de la même manière comme avec Xtends »

Contraint par la nature statique de Java, Xtends revendique tout de même une inférence de type de surface (pour gommer certaines redondances notamment sur les déclarations) et il allège le code de certains mots clés rébarbatifs en les considérant par défaut.
Notons aussi l'introduction des closures, d'accesseurs et mutateurs raccourcis, des points-virgules et des parenthèses optionnels...

[ame="http://vimeo.com/31248257"]Présentation du langage[/ame]

Téléchargement et plus d'informations sur le site du langage

Et vous ?

Que pensez-vous de Xtends ?
Comptez-vous l'utiliser ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de santana2006 santana2006
http://www.developpez.com
Nouveau Membre du Club
le 09/11/2011 16:13
@adiGuba : En fait je cite généralement XText et XTend ensemble parceque les deux vont ensemble c'est tout

Pour XTend peut servir, comme je l'ai déjà cité, entre autres à traduire des scripts rédigés à base d'un DSL conçu avec XText, vers un langage de programmation tel que java ou tout autre langage, et ce suivant ce qu'on choisit et ce qu'on développe avec XTend.

XTend n'est pas dédié à être un langage à part entier à mon sens.

Il s'agit d'un "langage" compilé, et non pas interprété, comme c'est le cas de certains langages de scripts. Le résultat de la compilation est bien entendu des classes Java. du coup, le considérer comme un langage proprement dit va induire des soucis de lenteur, car à chaque sauvegarde les scripts XTend sont recompilés (Bien sur si l'option de build automatique de eclipse est activée).

Je ne comprends pas les motivations de le présenter (Par les auteurs du projet), comme étant un langage à part entier, car d'une part ça induit une mal compréhension de la part des gens qui veulent le découvrir pour la première fois, et d'autre part ça ne valorise pas les vraies capacités et possibilités offertes par le framework.
Avatar de adiGuba adiGuba
http://www.developpez.com
Expert Confirmé Sénior
le 09/11/2011 16:32
Citation Envoyé par barmic  Voir le message
Je ne sais pas ce qu'il en est de XTend, mais l'inférence de type est tout à fait fiable.

Je n'ai pas dit que le type-inference n'est pas fiable. Ca marche très bien tant que tu l'utilises dans ton programme. Mais si tu développes une API public cela peut s'avérer trompeur !

La moindre modification de code peut modifier le type de retour d'une méthode, et dans le cas d'une API destiné à d'autre développeurs cela peut engendrer diverses incompatibilités !

Au niveau des closures/lambdas il n'y a pas de soucis à l'utiliser car la porté est faible. Au contraire même dans ce cas c'est même fortement utile.
Mais au niveau des méthodes c'est trop contraignant

La plupart des syntaxes de Xtends visent à gagner quelques caractères par-ci par-là, mais cela rend le tout moins strict... C'est dommage car à mon sens c'est une des grosses qualité de Java...

@santana2006 : Il n'est pas question de soucis de performance ou autres.
XTends est présenté comme un remplaçant de Java, alliant ses qualités et gommant ses défauts. Mais pour moi ce n'est pas le cas...

a++
Avatar de JoeChip JoeChip
http://www.developpez.com
Membre chevronné
le 09/11/2011 18:28
Nan mais si on prend Xtend + XText comme générateur de code Java, par exemple, ça peut être pas mal... Perso je vais me pencher sur la question...
Avatar de thelvin thelvin
http://www.developpez.com
Modérateur
le 09/11/2011 18:55
Personnellement je vois toujours pas pourquoi c'était pas juste Java + XText, mais bon...
Avatar de _skip _skip
http://www.developpez.com
Expert Confirmé Sénior
le 09/11/2011 19:37
Je suis un peu moins catégorique que vous tous car je trouve qu'il y a certaines bonnes idées.
En plus ça génère juste du java, donc c'est assez prometteur. Il est cependant regrettable qu'on mette en avant des petites économies qui risquent de nuire à la lisibilité, surtout l'affaire des parenthèses.
Avatar de Uther Uther
http://www.developpez.com
Expert Confirmé Sénior
le 10/11/2011 9:33
Citation Envoyé par Spirit 203  Voir le message
Sans vouloir troller, est-ce qu'on peut m'expliquer l'avantage d'un tel langage par rapport à Scala ? Je suis ouvert à des réponses constructives.

Je suis de l'avis d'AdiGuba. Le seul truc que je trouve intéressant au final dans les fonctionnalité présentés est l'amélioration des "string litterals".
Tout le reste est soit inutile, arrive dans Java 8 ou est une sévère régression au niveau de la lisibilité du code et du risque d'erreur.
Avatar de drob38 drob38
http://www.developpez.com
Nouveau Membre du Club
le 10/11/2011 9:35
Je n'ai pas testé et ne porte pas d'avis sur les impacts techniques mais je pense qu'il ne faut pas faire de java une rampe de lancement vers une multitude de langage plus ou moins clonés, qui comme pour le javascript et ses nombreux frameworks (librairies dojo, jquery, extJs...) complexifie la prise en main et le choix stratégique d'évoluer dans un langage !
Il y a déjà Groovy je crois dans cette catégorie de langage hybride de java...
Avatar de romatou18 romatou18
http://www.developpez.com
Invité régulier
le 10/11/2011 16:22
Les closures, mutateurs, point virgules optionels, strings definies sur plusieurs lignes, types inferés c'est une copie exacte de groovy.

Je ne comprends pas pourquoi la fondation eclipse sort un tel language, groovy faisant exactement la meme chose avec dors et deja un eco systeme grandissant depuis env 5 ans.

Java lui meme devrait evoluer comme Microsoft a fait evoluer C# : constament et rapidement. La syntaxe java est bien trop redondante et lourde, ayant été developpeur C# 3 ans et maintenant C++, et ayant fait plusieurs projets universitaires en JAva, ya pas photo, C# mene la danse niveau ergonomie de langage, JAVA se traine derriere sans aucune excuses, particulierement Java qui tourne sur une machine virtuel avec des API par conséquent standards et portables.

On est d'accord faire evoluer C++ avec ses milliers de compilateurs et de libraries non portables, c'est une autre histoire.
Avatar de adiGuba adiGuba
http://www.developpez.com
Expert Confirmé Sénior
le 10/11/2011 16:47
Citation Envoyé par romatou18  Voir le message
Java lui meme devrait evoluer comme Microsoft a fait evoluer C# : constament et rapidement.

Surtout pas ! C# introduit de nombreuse évolution assez critiquable.

Je préfère une évolution lente mais plus stricte, quitte à utiliser un autre langage pour des trucs plus "rapide"

a++
Avatar de thelvin thelvin
http://www.developpez.com
Modérateur
le 10/11/2011 17:38
Bon, ce que j'avais demandé à voir, une présentation de XTend disant que c'est un langage de templates, je suis finalement tombé dessus par hasard.

Du coup, je comprends un peu mieux qu'il y ait besoin de facilités pour gérer le traitement de Strings dans ce langage, et à la limite je veux bien comprendre que ça les amuse d'ajouter aussi plein de trucs que Java n'a pas, pour la forme (passque bon, on s'en tape un peu, je suis désolé, si c'est juste supposé être un langage de templates proche de Java.)

C'est pas faux, que de temps à autres, la meilleure manière d'automatiser un traitement, c'est la création d'un DSL. Mais il faut naviguer un moment, avant de voir quelque part que XTend peut aider, et comment.
Avatar de JoeChip JoeChip
http://www.developpez.com
Membre chevronné
le 11/11/2011 9:57
Oui, en fait c'est pour automatiser les tâches répétitives de programmation en Java, quoi. Donc il faut adapter XTends à l'utilisation qu'on en a... Comme d'hab, quoi...

Mais, de fait, il est peut-être plus simple et efficace d'organiser convenablement son code Java, de façon à ce que tout ce qui est souvent utilisé dans les couches "hautes" des applis puisse être écrit en peu de mots.

Après tout, on peut toujours encapsuler ce qui ne nous plaît pas dans Java, pour ensuite pouvoir écrire en général d'une façon qui nous plaît...
Offres d'emploi IT
Concepteurs développeurs ntic h/f
CDI
Atos Technology Services - Haute Normandie - Rouen (76000)
Parue le 15/07/2014
Business Analyst (H/F)
CDI
Meetic - Ile de France - Paris (75009)
Parue le 08/07/2014
Administrateur Unix Linux H/F
CDI
EXPERIS IT - Ile de France - Paris (75000)
Parue le 07/07/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula