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

  1. #61
    Membre régulier

    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 65
    Points : 99
    Points
    99
    Par défaut JDK 7: Proposition 5 : extensions de méthodes > Contre
    Bonjour,

    Je suis contre, car cela n'apporte rien au niveau de la lisibilité d'un code ainsi construit.

    Cordialement

  2. #62
    Membre régulier
    Profil pro
    Président
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Président

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Points : 102
    Points
    102
    Par défaut
    contre , problème de lisibilité ne est pas facile

  3. #63
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Pourquoi pas ?
    Passer d'un type retour void à un type retour autre n'impacte pas à la compatibilité, ce qui n'est pas le cas du contraire...

    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  4. #64
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    j'ai voté contre, ça me semble juste une bidouille syntaxique pour un résultat cosmétique.
    Je dis cosmétique car en l'occurence il s'agit de retomber sur quelquechose de visuellement normal car maListe.sort() est tout de même plus naturel que Collections.sort(maListe)

    Tout ça pour contourner le problème de méthodes manquantes (à mon avis oubliée dans le cas du sort) dans des classes implémentant une interface qu'on ne peut plus toucher et dont le comportement a du coup été complété dans d'autres classes, Collections dans notre cas d'exemple.

    solution radicale : pour le cas des List, déclarer toute l'arborescence List+Collections en deprecated pour garder la compat. et fusionner le tout correctement et on aura enfin maNouvelleListe.sort();

  5. #65
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Ce n'est pas un oubli, puisque la classe "outils" Collections est apparue avec le framework collection dans la version 1.2, et elle possède sort(List)...

    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  6. #66
    Membre à l'essai
    Profil pro
    Architecte de système d’information
    Inscrit en
    Février 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Contre, résolument contre.

    Malgré la pertinance des arguments avancés par lunatix, il me semble que le gain possible est faible par rapport aux risques probables.

    Je fais sans doute figure de dynosaure, mais ce point rejoints d'ailleurs un des trucs que je n'aime pas dans le langage Java, a savoir
    la confusion qu'il est possible de faire etre methode static et non-static.

    L'idée même que le code de la méthode main ci dessous fonctionne me fait mal au coeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class Banane {
     
      String attribut = "Banane des Iles" ;
     
      public static Banane createBanane() { 
        return new Banane() ;
      }
     
      public static void main(String [ ] args)
      {
        Banane b = null ;
        b = b.createBanane() ;
        System.out.println(b);
      }
     
      public String toString() { 
        return attribut ;
      }
     
    }

  7. #67
    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
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par Bollagain Voir le message
    L'idée même que le code de la méthode main ci dessous fonctionne me fait mal au coeur
    Euh, je ne comprends pas ce qui te choque... Ta classe Banane est une Factory dans ce principe d'utilisation, c'est normal que ça fonctionne correctement et que ça soit possible de coder comme ça.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  8. #68
    Membre à l'essai
    Profil pro
    Architecte de système d’information
    Inscrit en
    Février 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Euh, je ne comprends pas ce qui te choque... Ta classe Banane est une Factory dans ce principe d'utilisation, c'est normal que ça fonctionne correctement et que ça soit possible de coder comme ça.
    En fait, ce qui me choque, c'est qu'on puisse appeler une méthode static qur autre chose qu'une classe et que par conséquent, on puisse appeler une méthode (static) sur un objet null.

    Cela étant dit, tu as raison, c'est tout a fait légale...

  9. #69
    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
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par Bollagain Voir le message
    Cela étant dit, tu as raison, c'est tout a fait légale...
    Il y a un warning à la compi par défaut je crois ?
    Ca suffit à rendre attentif à l'inutilité d'appeler une méthode statique sur une instance.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  10. #70
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Je suis contre, problème de lisibilité.

    Cordialement,

  11. #71
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    c'est mieux

  12. #72
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 151
    Points : 144
    Points
    144
    Par défaut
    Comme écrit dans la faq, j'associe les import static de tiger à des using namespace du c++ . Moi c'est un truc que j'ai moyennement aimé. Ca a son utilité, mais ça a ses risques. C'est un truc que j'aime pas utiliser. Ca va pas changer avec l'extension de ce principe aux méthodes.
    Pas super convaincu de l'importance de ça comparé au risque de confusion. Contre.

    C'est vrai que ton main, Bollagain, me choque aussi

  13. #73
    Membre régulier Avatar de fatypunk
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par mavina Voir le message
    Ce n'est pas un oubli, puisque la classe "outils" Collections est apparue avec le framework collection dans la version 1.2, et elle possède sort(List)...

    F.
    Je ne suis certain qu'il s'agisse d'un oubli non plus... Mais qu'importe la raison qui motiverais l'ajout de méthode, la depreciation et nouvelle définition et la seule qui soit propre !

    Citation Envoyé par Bollagain Voir le message
    Contre, résolument contre.

    Malgré la pertinance des arguments avancés par lunatix, il me semble que le gain possible est faible par rapport aux risques probables.

    Je fais sans doute figure de dynosaure, mais ce point rejoints d'ailleurs un des trucs que je n'aime pas dans le langage Java, a savoir
    la confusion qu'il est possible de faire etre methode static et non-static.

    L'idée même que le code de la méthode main ci dessous fonctionne me fait mal au coeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class Banane {
     
      String attribut = "Banane des Iles" ;
     
      public static Banane createBanane() { 
        return new Banane() ;
      }
     
      public static void main(String [ ] args)
      {
        Banane b = null ;
        b = b.createBanane() ;
        System.out.println(b);
      }
     
      public String toString() { 
        return attribut ;
      }
     
    }
    Ca me choque aussi mais il n'est pas possible de faire plus qu'un warning pour des raisons de compatibilité.
    Développeur Java SE, Java EE (EJB3)
    IDE : Netbeans 6.5 / Serveur d'application : Glassfish v2.1 / OS : Ubuntu 8.10 Intrepid Ibex et CentOS 5
    Historique : GWBasic, Turbo Pascal (beaucoup), Visual Basic, C (un peu), C++ (beaucoup), Assembleur (6800 et x86 / un peu), Java, Smalltalk (un peu), Lisp (un peu), Prolog (un peu), PHP, Ruby (un peu), et retour à Java (beaucoup).

    Pas de questions techniques par MP s'il vous plait !

  14. #74
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    L'idée est très bonne, mais ça amène trop de risques de confusions.
    => contre

    Par contre avec un autre "opérateur" que ".", je serais déjà plus ouvert.

    Genre : list|sort();

  15. #75
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 21
    Points
    21
    Par défaut
    C'est une bonne idee a ajouter des methods comme sort() a List class. Utiliser toujours ce bizarre objet Collections est... bizarre, et ajouter le sort() method ferait les List sur Java plus comme les objects vrais. Il faut que une List peut se sorter, sans acune classe exterieure. Et je suis pour les lambdas (closures) aussi, et ca ferait beaucoup de choses avec Lists plus facile (comme sur C#, LINQ).

    Mais ce strings.filter(isCountryName).sort().uniq().each(printString) c'est une idee mouvaise. Java n'est pas Ruby pour faire choses comme ca. Le method sort() peut sorter la List "in situ", ou retourner une List sortee, mais ne pas les deux choses en meme temps, ca n'aurait pas de raison.

  16. #76
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2008
    Messages : 20
    Points : 30
    Points
    30
    Par défaut Do it yourself
    Contre,

    Déjà, avec cet import statique, comment sait-on quelle classe obtient cette méthode statique? Rien n'indique que Collections.sort() sera attribué à List.

    Pour ce genre de sucre synthaxique, tout le monde n'aime pas donc il suffit de le faire soi-même (si personne d'autre n'y met les doigts).
    J'utilise depuis longtemps une classe GBC pour remplacer GridBadConstaints avec une utilisation en cascade :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new GBC(0,1).insets(2,5,2,5).fill(GBC.BOTH);
    Effectivement List pourrait avoir une méthode statique sort() (ou plutôt une interface SortableList comme le propose fatypunk) mais cette méthode n'utilise rien de l'interface List. C'est pourquoi à mon avis elle est externalisée dans Collections afin de ne pas surcharger List en méthodes. C'est la même chose pour et aussi (excellente classe de Apache).

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