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

Affichage des résultats du sondage: Êtes-vous pour ou contre cette proposition ?

Votants
278. Vous ne pouvez pas participer à ce sondage.
  • Pour

    61 21,94%
  • Contre

    217 78,06%
Langage Java Discussion :

JDK 7: Proposition 5 : extensions de méthodes [Débat]


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Par défaut JDK 7: Proposition 5 : extensions de méthodes
    Aujourd'hui :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import java.util.Collections;
     
    List<String> list = …;
    Collections.sort(list);
    Demain :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import static java.util.Collections.sort;
    
    List<String> list = …;
    list.sort();
    En combinant cette proposition avec la proposition 6, il serait possible d'écrire du code de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import static java.util.Collections.sort;
     
    List<String> strings = ...;
     
    strings
        .filter(isCountryName) // could be a closure
        .sort()
        .uniq()
        .each(printString); // ditto

  2. #2
    Membre expérimenté Avatar de JPDMJC
    Profil pro
    Inscrit en
    Février 2005
    Messages
    337
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 337
    Par défaut
    J'avouerai être plutôt pour, histoire de raccourcir encore plus le code, mais cela ne risque t-il pas de mettre en déroute celui qui lit le code ?
    Java est sensé être un langage simple - enfin je crois, et permettre de telles choses pourrait aider à s'emmêler royalement les pinceaux.

    Ou pas.

  3. #3
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Bonsoir

    Je suis contre, avec ce genre de code on ne sait plus ce qui est static et ce qui est objet. Je préfère plutôt l'ajout d'une méthode sort dans l'interface List par exemple.

    A part ça, l'import static ça existe déjà et ça peut être pratique si on en abuse pas (perso je ne l'utilise jamais, ça va tellement vite, et c'est tellement plus parlant, d'écrire Collections.sort() ; il y a de meilleurs perfs quand on utilise l'import static ?).

    yann

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Totalement contre.

    Citation Envoyé par yann2 Voir le message
    Je préfère plutôt l'ajout d'une méthode sort dans l'interface List par exemple.
    Ça serait beaucoup plus logique...

  5. #5
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ®om Voir le message
    Citation Envoyé par yann2 Voir le message
    Je préfère plutôt l'ajout d'une méthode sort dans l'interface List par exemple.
    Ça serait beaucoup plus logique...
    Mais malheureusement impossible sans provoquer une perte de la compatibilité...

    a++

  6. #6
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Mais malheureusement impossible sans provoquer une perte de la compatibilité...
    Pour Java 3 alors

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    Contre pour la complexité de lecture/compréhension qui deviendrait plus difficile.

  8. #8
    Membre confirmé Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Par défaut
    plus que contre

    la lecture du code devient compliqué.
    on arrive presque aux problématiques d'héritages multiples (méthodes du même nom, etc..).

    tout ça pour gagner quelques lettres....

    Aucun interêt.

  9. #9
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    hum, pas facile. Autant effectivement, ca complique la lecture du code, ce qui tends a me faire voter non, mais ca permet d'un autre coté d'implementer des domain specific languages plus facilement.

    Je vote pour, en me disant que ca serait a utiliser parcimonieusement (comme le import static en fait), car ca peut permettre d'améliorer certaines api.

  10. #10
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Je m'abstiens de voter !

    Cette proposition n'est pas forcément très clair et cela risque d'apporter des ambigüités... pourtant il serait intéressant d'avoir un moyen de faire évoluer les interfaces sans casser la compatibilité...

    Bref oui sur le principe mais pas comme cela (oui je sais je suis chiant )


    Citation Envoyé par yann2 Voir le message
    Je préfère plutôt l'ajout d'une méthode sort dans l'interface List par exemple.
    Malheureusement il est impossible de modifier une interface sans casser la compatibilité, car toutes les classes implémentant l'interface DEVRONT obligatoirement implémenter cette méthode...


    a++

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Perso, j'ai pas compris, si quelqu'un avait la bonté de m'expliquer...
    (on se sent nul parfois )
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    J'ai voté contre, parce que je trouve que ça apporte trop d'ambiguïté, et ça n'améliore pas franchement la lisibilité du code !

    Citation Envoyé par adiGuba Voir le message
    Malheureusement il est impossible de modifier une interface sans casser la compatibilité, car toutes les classes implémentant l'interface DEVRONT obligatoirement implémenter cette méthode...
    Ou alors, il faudrait proposer une évolution du Java en proposant des méthodes optionelles dans les interfaces. Les classes implémentant cette interface ne seraient alors pas obligées de définir ces méthodes optionnelles, et dans ce cas, elles lanceraient une exception MethodNotImplementedException Comme ça, a pu problème de compatibilité
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  13. #13
    Membre expérimenté
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Malheureusement il est impossible de modifier une interface sans casser la compatibilité, car toutes les classes implémentant l'interface DEVRONT obligatoirement implémenter cette méthode...
    Ben c'est pas la mort, non plus. Ça demande un peu de boulot, mais bon ça se fait.

    Mais d'un point de vue design, comme tu dis, ça ne serait peut-être pas super clean de déplacer ces méthodes.

  14. #14
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Je m'abstiens de voter !
    +1
    Je trouve que l'explication d'adiGuba est juste. Ca laisse un sentiment de bidouillage au final.

  15. #15
    Membre expérimenté
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Par défaut
    Je comprends vaguement ce que veux dire lunatix, mais je rejoins les autres pour dire que c'est la porte ouverte à toutes les fenêtres !
    Comme le dit yann2, ce serait plus logique d'ajouter des méthodes déléguantes dans les conteneurs.

  16. #16
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    Contre,

    Ce sucre syntaxique n'apporte rien au développeur moderne (ie assisté d'un IDE ) mais par contre rend la relecture et maintenance du code plus complexe.

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  17. #17
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Idem, comme bulbo, si c'est pour rendre le code incohérent, autant s'en passer...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    J'ai voté contre. A la base, je n'aime pas trop les imports static. Je suis favorable à toute avancé qui apporterait une meilleure lisibilité au code et je ne crois pas que cette proposition aille dans ce sens.

  19. #19
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Contre.

    Problème de lisibilité du code.
    Surtout que les IDE masquant les import, on regarde rarement les import d'une classe donc on ne verrait pas l'import static de la méthode.

  20. #20
    Membre confirmé Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Par défaut
    j'ai voté contre
    j'ai vus que ça complique un peu l'apprentissage !

Discussions similaires

  1. Réponses: 165
    Dernier message: 03/09/2009, 15h35
  2. Réponses: 78
    Dernier message: 27/08/2009, 19h29
  3. JDK 7: Proposition 3 : Comparer les énumérations
    Par vbrabant dans le forum Langage
    Réponses: 52
    Dernier message: 19/10/2008, 12h36
  4. Réponses: 27
    Dernier message: 19/10/2008, 11h51
  5. [XSLT] JDK 5.0 et Extension XSLT
    Par Folken_fr dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 11/10/2006, 09h47

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