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
248. Vous ne pouvez pas participer à ce sondage.
  • Pour la proposition 1

    38 15,32%
  • Pour la proposition 2

    50 20,16%
  • Contre

    160 64,52%
Langage Java Discussion :

JDK 7: Proposition 10 : Le même type [Débat]


Sujet :

Langage Java

  1. #21
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    J'ai rien contre, mais je ne vois pas l'intérêt. Donc plutot contre pour éviter de faire de l'ombre aux vrai nouvelles propositions utiles de Java7

  2. #22
    Membre émérite

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    J'aime bien la proposition 2 : This, classe de l'objet this. Ca suit la notation conseillée pour Java, c'est très clair, je trouve.

  3. #23
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Pour la proposition 2, mais pas pour les appels chaînés, plutôt pour des méthodes comme clone().

    C'est juste que j'ai toujours été frustré de me faire ch... à bien vérifier mes generics, et à quand même me taper les warnings à cause d'un clone. C'est pas pour faire mon râleur, c'est juste que je trouve l'illustration mal choisie. Je suis pas fan des appels chaînés, mais l'utilisation d'un type This combiné avec les generics peut apporter de l'expressivité (je crois).
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  4. #24
    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
    Citation Envoyé par xavlours Voir le message
    Pour la proposition 2, mais pas pour les appels chaînés, plutôt pour des méthodes comme clone().
    Hum en effet cela pourrait être vraiment pas mal !

    Par contre je me demande s'il est possible de modifier la définition de clone() sans casser la compatibilité...

    a++

  5. #25
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Par contre je me demande s'il est possible de modifier la définition de clone() sans casser la compatibilité...
    En théorie, ça devrait être faisable, puisque l'objet renvoyé par clone() doit être du même type que l'objet d'origine. Mais rien ne le garantit à la compilation (ni même à l'exécution).
    On peut imaginer une implémentation de List tellement exotique (ou crade) que le développeur décide de renvoyer une ArrayList ou une LinkedList lors du clone. Si cette List est fournie par une Factory, l'utilisateur ne s'en rendra même pas compte à l'exécution, puisqu'il manipule une List, et qu'il caste son clone en List. Par contre, le jour du changement de JRE, ça plante.

    Mais tant pis pour eux, je suis toujours pour .
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  6. #26
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Points : 607
    Points
    607
    Par défaut
    Ca pourrait être pas mal car la syntaxe des generics style
    ByteBuffer extends Buffer<ByteBuffer>
    ou la classe se passe elle même en paramètre de sa mère est un peu moche par contre un mot clef différent de this serait le bienvenu, peut être un <this> pour bien différencier les 2 non ?

  7. #27
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Voté pour la proposition 1 (pas la 2) comme ça, on évite d'ajouter un nouveau mot clé/type et on évite de casser ceux qui ont eu la malchance de nommer un de leurr type par
    This.

    Voté pour en général car ça permet de bâtir des APIs plus solides et extensibles: ça peut ne pas intéresser ceux qui mangent leur propre côde, mais dans les cas où on batît une couche sur laquelle d'autres bâtiront leur propre couche, etc., cette fonctionnalité est un must !

    P.S.: J'ai voté contré le chainage des appels void.

  8. #28
    Membre averti

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Points : 371
    Points
    371
    Par défaut
    En fait, ni l’une ni l’autre ne me séduisent.
    Niveau maintenance, je pense que le cast obligatoire a ses vertus.

    Je suis donc contre.

  9. #29
    Membre averti Avatar de Amine_sas
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 245
    Points : 307
    Points
    307
    Par défaut
    Contre.
    Je pense qu'un cast obligatoire soit pus lisible!
    "Un remboursement des programmes défectueux serait envisageable mais toute l'industrie du logiciel ferait faillite la première année." Andrew Tanenbaum.

  10. #30
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Alors, si jamais ça se fait:

    - contre l'obligation de retourner l'objet courant.

    - contre l'obligation de retourner un objet exactement du même type dynamique que this. Une sous-classe peut et doit faire l'affaire.

    - pour la stricte obligation de surcharger la méthode dans toutes les sous-classes (comme une méthode abstract), et en plus dans toutes les sous-sous-classes. Ma classe MatriceCarree immuable ne peut pas hériter implicitement de la méthode Matrice{ This inverser(){blabla} }, je dois impérativement la surcharger pour instancier proprement une instance de MatriceCarree .

    Pour info, le langage Eiffel possède un type "like current" à peu près cohérent.

  11. #31
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Contre : La syntaxe de Java est lourde, mais cela fait qu'elle est claire.

    Si je veux un langage ou mon programme tienne en une ligne, je prendrais Perl.

    A mon avis, tout ces nouvelles possibilités vont faire qu'au final on aura 2560 facons d'ecrire la même chose, ce qui au final rendra la compréhension d'un programme donné difficile, si on a pas les mêmes habitudes que celui qui l'a écrit.

    Je trouve ca fou que d'un coté les gens mettent en place des tonnes de conventions de codage, de regles et tout, et pendant ce temps Sun nous invente des nouvelles notations a tour de bras, juste pour sauver un petit cast, et pouvoir ecrire 12 instructions en une seule ligne.

  12. #32
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    Citation Envoyé par denisC Voir le message
    Contre : La syntaxe de Java est lourde, mais cela fait qu'elle est claire.

    Si je veux un langage ou mon programme tienne en une ligne, je prendrais Perl.

    A mon avis, tout ces nouvelles possibilités vont faire qu'au final on aura 2560 facons d'ecrire la même chose, ce qui au final rendra la compréhension d'un programme donné difficile, si on a pas les mêmes habitudes que celui qui l'a écrit.

    Je trouve ca fou que d'un coté les gens mettent en place des tonnes de conventions de codage, de regles et tout, et pendant ce temps Sun nous invente des nouvelles notations a tour de bras, juste pour sauver un petit cast, et pouvoir ecrire 12 instructions en une seule ligne.
    j'adhère d'une façon générale a ton raisonnement.
    La seule proposition interressante à mon gout est la "JDK 7: Proposition 1 : Constructeurs simplifiés pour la généricité".
    JBusyComponent, une API pour rendre occupé un composant swing.
    SCJP Java 6.0 (90% pass score)

  13. #33
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Citation Envoyé par denisC Voir le message
    Je trouve ca fou que d'un coté les gens mettent en place des tonnes de conventions de codage, de regles et tout, et pendant ce temps Sun nous invente des nouvelles notations a tour de bras, juste pour sauver un petit cast, et pouvoir ecrire 12 instructions en une seule ligne.
    Je ne suis pas sur que SUN est derrière ces propositions. Il me semble qu'il s'agit de proposition de la communauté et que c'est le JCP qui rédige le JLS maintenant.
    OpenJDK est la communauté qui gère l'implémentation de référence défini par le JCP.
    A part la propriété intellectuelle de l'appellation Java, je ne sais pas s'il reste grand chose à SUN.

  14. #34
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Sun garde quand même une place de choix dans les JCP. Mais il est vrai que toutes ces propositions ne viennent pas de Sun.

  15. #35
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par christopheJ Voir le message
    Je ne suis pas sur que SUN est derrière ces propositions. Il me semble qu'il s'agit de proposition de la communauté et que c'est le JCP qui rédige le JLS maintenant.
    OpenJDK est la communauté qui gère l'implémentation de référence défini par le JCP.
    A part la propriété intellectuelle de l'appellation Java, je ne sais pas s'il reste grand chose à SUN.
    Tu as tout a fait raison, Christophe. Mais c'est quand même Joshua qui présente, donc Sun n'est pas bien loin.
    Mais il faudrait effectivement dire JCP plutot que SUN. Enfin a part le nom, mon avis reste le même. Pourquoi chercher a tout prix a simplifier une syntaxe qui a pour le moment l'avantage de la clareté? Ca me parait être se tirer une balle dans le pieds que de supprimer ce gros avantage de Java...

  16. #36
    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
    Citation Envoyé par denisC Voir le message
    Tu as tout a fait raison, Christophe. Mais c'est quand même Joshua qui présente, donc Sun n'est pas bien loin.
    Joshua travaille désormais chez Google il me semble...


    Sinon cette proposition me semble au contraire apporté plus de clarté, en distinguant le cas où retourne un objet du même type et le cas où l'on renvoi l'instance courante...

    a++

  17. #37
    Expert éminent sénior


    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
    Points : 11 101
    Points
    11 101
    Par défaut
    De plus, c'est surtout Neal Gafter qui propose cela. Même pas Joshua. Et tous les deux sont chez Google.

    Vincent
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  18. #38
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Après avoir un moment hésité, contre.

    Si on était obligé de faire un cast ça se justifierait, mais ce n'est pas le cas. On peut très bien surcharger les méthodes concernées dans la classe fille pour qu'elles retourne le type souhaité, comme l'explique AdiGuba ici.
    Je pense que c'est à la classe fille de savoir quel type elle veut retourner, pas sa classe mère.

  19. #39
    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
    Citation Envoyé par Uther Voir le message
    Je pense que c'est à la classe fille de savoir quel type elle veut retourner, pas sa classe mère.
    Au contraire je pense que c'est à la classe mère (ou à l'interface) de définir le type qu'il sera retourné. Mais actuellement il n'y a aucune moyen de dire "tu dois retourner this"...


    a++

  20. #40
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Au contraire je pense que c'est à la classe mère (ou à l'interface) de définir le type qu'il sera retourné. Mais actuellement il n'y a aucune moyen de dire "tu dois retourner this"...


    a++
    L'assertion obligeant a retourner "this" fait elle vraiment partie de l'API ?
    Je m'explique.

    Prenons le cas du mot clef "synchronized" qui est aujourd'hui considéré uniquement comme du ressort de l'implémentation. A tel point que la javadoc ne tient pas compte de ce mot clef et ne sera donc jamais commenté lors de la publication de l'API.

    J'ai l'impression que retourner "this" plutot qu'une nouvelle instance dans une méthode à l'instar du mot clef "synchronized" fait plutôt partie du domaine de l'implémentation et non de l'API.

    Je ne ressens pas le besoin de pouvoir exprimer "retourne this"
    Par contre pouvoir exprimer "retourne le même type que la vision que j'ai de l'objet" est interressant et améliorerait bien l'utilisation du polymorphisme.
    JBusyComponent, une API pour rendre occupé un composant swing.
    SCJP Java 6.0 (90% pass score)

Discussions similaires

  1. rechercher tous les fichiers d'un même type
    Par didierdarras dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 07/09/2007, 09h43
  2. Réponses: 14
    Dernier message: 13/07/2007, 12h05
  3. Comment attraper tous les noeud d'un même type dans un tableau
    Par lodan dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 01/04/2007, 16h36
  4. 2 objets de même type dans une classe
    Par _R3nO_ dans le forum Hibernate
    Réponses: 2
    Dernier message: 28/02/2007, 16h12
  5. Réponses: 18
    Dernier message: 21/09/2006, 11h54

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