IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Java Discussion :

Xtends : la fondation Eclipse sort un nouveau langage compatible Java


Sujet :

Eclipse Java

  1. #1
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 548
    Points
    68 548
    Par défaut Xtends : la fondation Eclipse sort un nouveau langage compatible Java
    Xtends : la fondation Eclipse sort un nouveau langage
    Compatible Java, qui allège et enrichit les codes sources



    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 ?

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 39
    Points : 70
    Points
    70
    Par défaut
    Le code final de la présentation est très peu intuitif je trouve, on perd terriblement en clarté et je pense en vitesse de développement.

    J'aime vraiment pas le principe.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 1 091
    Points
    1 091
    Par défaut Bof bof
    Encore un Nieme langage pour remplacer Java.
    Un nouveau langage qui n'apporte finalement que bien peu.

    Aucun intérêt, surtout si la chaine de compilation dépend d'Eclipse.

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Je viens de jeter un coup d'oeil à la doc : http://www.eclipse.org/Xtext/xtend/#

    Il y a peut-être quelques idées sympa (final implicite, les String-multilignes, pas de checked-exception, closures, ...) mais il y a aussi beaucoup de choix très discutable :

    • L'amélioration du Type inference n'apporte pas grand chose. Je préfère de loin préciser un type que de ne rien mettre ou utiliser un nouveau mot-clef comme val ou def qui ne sont pas intuitif du tout

    • La simulation des property n'est pas terrible non plus : person.name équivalent à person.getName() !
      Comment je sais si j'accède directement à l'attribut ou pas ??? Le principe est bien, mais une autre syntaxe aurait été préférable !
    • Les parenthèses sont optionnels si la méthode ne prend pas de paramètre (youpi je gagne 2 caractères !!)
      Non seulement c'est totalement inutile mais cela fait perdre en lisibilité !
    • Les Closures c'est très bien mais ils adoptent une syntaxe très différente de celle de Java 8
    • Le switch sur Object ? Sympathique mais une simple Map peut faire l'affaire en mieux (grâce aux hashCode).
      Surtout que contrairement aux int/enum/String il est impossible d'optimiser cela à la compilation...
    • Les Extension methods je ne suis pas trop pour. Ca cache l'appel réel et cela peut générer des surprises.
    • Les checked-exceptions remontées implicitement dans une runtime-exception... C'est le meilleur moyen de les louper



    Bref pas vraiment convaincus


    a++

  5. #5
    Membre actif
    Inscrit en
    Février 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 72
    Points : 214
    Points
    214
    Par défaut
    Je suis pas convaincu.
    Y'a des trucs affreux, genre le return implicite, à quoi çà sert / qu'est ce que çà fait gagner, éviter de taper le mot "return" ?
    J'aime vraiment l'écosytsème Java mais certains langages dérivés sont quand même assez discutables (même groovy je suis agacé / déçu de certains changements du langage par rapport à du java qui n'apportent rien ou pas grand chose)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 195
    Points : 511
    Points
    511
    Par défaut
    pour moi ça ressemble à un affreux mixe de la syntaxe java avec celle de ruby

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Points : 41
    Points
    41
    Par défaut
    En gros c'est scala en moins bien. A tous les dev java sceptiques, essayer Scala c'est l'adopter.

    Il faut un peu de temps pour passer du paradigme impératif à fonctionnel mais au final on écrit beaucoup moins de lignes de codes, et on rajoute pas mal de fonctionnalités (trait, closure, actors, etc.)

  8. #8
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    On peut au moins saluer l'effort.
    dommage qu'ils ne sortent pas un fork de jvm avec.
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  9. #9
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par gilwath Voir le message
    pour moi ça ressemble à un affreux mixe de la syntaxe java avec celle de ruby
    Pour moi ça ressemble à du Groovy.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  10. #10
    Membre averti Avatar de ZeRevo
    Inscrit en
    Avril 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 302
    Points : 342
    Points
    342
    Par défaut
    Je vais l'essayer, ça me semble beaucoup plus intéressant que Groovy, Scala, et autres langages.

  11. #11
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Points : 110
    Points
    110
    Par défaut
    Les amis, faut pas le prendre comme étant un langage dédié a remplacer java ou bien a être un langage de programmation "classique".

    En fait xtend est couplé avec xtext, ce dernier est un langage de programmation de DSL (Domain specific langage).

    L'un des buts principaux de xtend est la génération de code, a base d un DSL.

    J ai travaille avec xtext est xtend pour la génération de code d'architecture 3tiers JEE. C est un outil super et tres innovant, qui n a rien a avoir avec les outils classiques de MDA (Style Andro MDA).

    Je vous encourage vivement a l essayer.

  12. #12
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    L'idéal ce serait un truc pleinement configurable, genre qu'on puisse choisir de supprimer les accolades et de les remplacer par des indentations, etc. Et qu'on puisse bien sûr aussi remettre tout en Java pur, et que les sources soient automatiquement corrigées...
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

  13. #13
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Points : 110
    Points
    110
    Par défaut
    ça revient à l'usage dont tu en fais.

    Si tu utilises xtend en tant que langage de programmation proprement dit, tu vas pas sentir l'apport de l'outil.

    Si tu l'utilises en conjonction avec xtext, tu vas t'apercevoir des facilités énormes que xtend propose (et que xtext le fait aussi).

    la vocation de DSL est justement de créer des langages, qui peuvent être fonctionnels ou techniques.

    les plugings eclipse du framework te permettent de bénéficier de trucs genre : la coloration syntaxique, l'auto-complete, et la validation (sorte de compilation de ton langage).

    avec xtend, tu as la possibilité, entre autres, de traduire ton langage en un langage de programmation (style ce que fait les MDA), et là c toi qui spécifie les règles du jeu (c à d tu controle à 100%) la manière de générer le code.

    De mon coté j'ai eu des difficultés à bien assimiler la façon de faire des deux outils, mais en faisant de l'effort au niveau de la documentation j'ai découvert tout un autre monde.

  14. #14
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par BenWillard Voir le message
    L'idéal ce serait un truc pleinement configurable, genre qu'on puisse choisir de supprimer les accolades et de les remplacer par des indentations, etc. Et qu'on puisse bien sûr aussi remettre tout en Java pur, et que les sources soient automatiquement corrigées...
    Que chacun code à sa sauce ? Même si les sources seraient identiques au final, j'imagine le bordel à communiquer entre développeurs. La customisation à outrance, je n'en vois pas l'intérêt. Il faut tout de même une certaine structure commune.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  15. #15
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    @santana2006 : Hum, mais c'est pas ce qui est dit dans l'article ni dans la page de présentation.
    Tu aurais un lien, qui expliquerait comment voir Xtend de cette façon ? Ou bien tu es juste en train de nous vendre qu'on peut prendre Xtend et le modifier comme on veut avec xtext ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 816
    Points
    1 816
    Par défaut
    Ce n'est pas en rendant Java moins explicite et moins rigoureux qu'on va l'améliorer.

    Au vu des codes abominables que j'ai dû maintenir, l'inférence de type en particulier est une horreur. On tape def au lieu de int, autant de lettres, sauf que maintenant il faut aller lire chaque instruction return pour savoir quel est le type de retour de la méthode. Attendez non, il n'y a plus de return. En fait on ne sait même plus si la méthode retourne quelque chose sans la lire entièrement. Résultat : on ne peut plus utiliser une classe en lisant uniquement les prototypes de ses méthodes, il faut la lire entièrement.

    Ce n'est qu'un exemple et il y a bien d'autres chose à dire sur Xtend, y compris des choses bien, mais mon commentaire concerne davantage l'évolution de Java et ses dérivés en général.

    Essentiellement, le coté bavard de Java est une qualité : il contraint les développeurs à exprimer clairement leur pensée. Toute tentative d'en simplifier l'écriture a 90% de chance d'être une régression.

    Quand je dois corriger un code, je passe davantage de temps à comprendre ce qu'il est censé faire qu'à comprendre pourquoi il ne le fait pas. En fait, quand j'ai compris quelle était l'intention de l'auteur, le bogue apparaît généralement immédiatement. Les deux secondes gagnées lors de l'écriture du code ne justifient pas les deux semaines perdues lors de sa correction.

    Heureusement, la plupart des DSI l'ignorent, c'est ce qui permet aux prestataires de service comme moi de faire leur beurre. Peut-être que je devrais encourager l'usage de Xtend...

  17. #17
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    La customisation à outrance, je n'en vois pas l'intérêt. Il faut tout de même une certaine structure commune.
    La structure commune serait Java, mais je pourrais adapter à fond l'éditeur à mes besoins et à ma manière de faire.

    Pouvoir taper "MonObjet objet = new(param);" (quand le constructeur appelé est celui de la même classe), par exemple, ne rendrait pas Java moins rigoureux...

    Un peu comme le "sysout" suivi de <Ctrl><Space>, etc. Personne n'a besoin de savoir si j'ai tapé ça ou "System.out.println", et après tout ça pourrait aussi bien rester orthographié "sysout" dans mon éditeur...
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

  18. #18
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Points : 110
    Points
    110
    Par défaut
    @thelevin rassure toi, Je suis expert/architecte en technologies java, et je parle bien par connaissance de cause

    Je suis actuellement entrain justement d'écrire un moteur de génération de code (à base de XTend) à partir de DSL rédigée à l'aide de XText

    Tu peux trouver des réponses à tes questions dans la documentation de XText : http://www.eclipse.org/Xtext/documentation/. Il y a des tutoriels rapide pour commencer, ainsi que la documentation de référence.

    Voici également de la doc sur XTend : http://www.eclipse.org/Xtext/documen...troduction.php

  19. #19
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par BenWillard Voir le message
    La structure commune serait Java, mais je pourrais adapter à fond l'éditeur à mes besoins et à ma manière de faire.

    Un peu comme le "sysout" suivi de <Ctrl><Space>, etc. Personne n'a besoin de savoir si j'ai tapé ça ou "System.out.println", et après tout ça pourrait aussi bien rester orthographié "sysout" dans mon éditeur...
    Oui oui j'ai bien compris mais j'imagine bien l'équipe projet après. Voici un exemple un tout petit peu exagéré :

    <Débutant>Ça compile pas !
    <Expert technique>Attends je vais voir sur ton poste comment tu as fais pour voir s'il y a une erreur
    <Débutant>Ok
    <Expert technique>Ah mais attend t'as pas la même custo. Java que moi
    <Débutant>Bah euh peut être
    <Expert technique>Bah je peux rien pour toi, je trouve ma conf. plus lisible, désolé.
    <Débutant>
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  20. #20
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    santana2006: Ah, j'avais pas lu ta réponse, mais ça m'a l'air sérieux, en effet. Ca peut faire ce que je dis, donc ? Générer du Java à partir d'une source bidouillée à ma sauce ? genre un mod qui vire les accolades ?

    Robin56: bah, on ne passerait que par Java pur sucre, avec 2 modes pour l'éditeur, donc l'expert se pointe et passe en mode normal, et puis voilà. Et puis c'est pas parce que ce ne serait pas pratique pour tout le monde que ce n'est pratique pour personne comme tout le reste
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

Discussions similaires

  1. Terra : le nouveau langage de programmation bas niveau sort
    Par Cedric Chevalier dans le forum Autres langages
    Réponses: 1
    Dernier message: 24/05/2013, 13h43
  2. Réponses: 0
    Dernier message: 08/11/2011, 17h36
  3. Nouveau langage dans Eclipse
    Par armand_c dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 03/12/2009, 09h24
  4. Nouveau langage : le D
    Par cheick dans le forum D
    Réponses: 4
    Dernier message: 30/05/2004, 16h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo