|
|||||||
| Débats Les débats et sondages sur le langage et les technologies Java |
|
|
Publicité ' | |||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#1 | ||||||
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2003 Messages : 3 293 ![]() |
Aujourd'hui :
Code :
Code :
Code :
__________________
Vincent Brabant Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide. |
||||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() |
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. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : mai 2004 Messages : 797 ![]() |
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
__________________
duck and cover |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : septembre 2007 Messages : 282 ![]() |
Contre pour la complexité de lecture/compréhension qui deviendrait plus difficile.
|
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : juin 2004 Messages : 175 ![]() |
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.
__________________
En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks") |
|
|
00
|
|
|
#6 |
![]() ![]() |
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.
__________________
Blog blog = new MyBlog(); |
|
00
|
|
|
#7 | |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 665 ![]() |
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é... )Citation:
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
Perso, j'ai pas compris, si quelqu'un avait la bonté de m'expliquer...
(on se sent nul parfois |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
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. |
|
|
00
|
|
|
#10 | |
![]() ![]() Romain LinsolasJava craftsman Inscription : juillet 2005 Messages : 3 584 ![]() |
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:
__________________
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 |
|
|
00
|
|
|
#11 |
|
Membre expérimenté
![]() |
c'est la confusion,
on pourrait croire que sort() appartiendrait à l'interface List mais j'attends d'autres avis pour voter |
|
|
00
|
|
|
#12 | ||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 665 ![]() |
Citation:
Actuellement pour "ajouter" une méthode dans une interface on utilise une méthode static qui utilise une instance en premier paramètre. Par exemple comme l'interface List ne possède pas de méthode sort(), on utilise la méthode static Collections.sort() : Cette proposition vise à faire comme si cette méthode appartenait à l'interface List, en utilisant l'écriture suivante : Citation:
Je préfère quand même utiliser une méthode static plutôt qu'avoir à gérer une exception... a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||
|
00
|
|
|
#13 | ||
![]() ![]() |
bon, en clair ajourd'hui :
Code :
import static java.util.Collection.sort
pas forcement, tres judicieux, et pourtant, le import static bien utilisé est tres utile ! (je pense a l'api Math par exemple, ou certaines classes utilitaires) la proposition propose de pouvoir ecrire je pense que c'est rarement une bonne idée, mais cela permet quand même de bonnes choses, utilisé judicieusement. serait quand meme beaucoup plus lisible que De plus ca permetrait de faire plus facilment des api de type DSL (voir mon blog et qui n'a jamais eu envie d'ajouter une bonne quinzaine de methodes a String (par exemple quand on fait du web, plutot que de tapper Code :
__________________
Blog blog = new MyBlog(); |
||
|
00
|
|
|
#14 | |
![]() ![]() Romain LinsolasJava craftsman Inscription : juillet 2005 Messages : 3 584 ![]() |
Citation:
Je reste contre cette proposition, je suis d'accord avec bassim. Et que se passe-t-il dans le cas où l'interface List proposerait alors une méthode sort ? Quelle méthode sort serait appelée alors ?
__________________
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 |
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Tiens, j'avais jamais pensé à cette généralisation. Est-ce qu'il y a un design pattern connu qui explicite ça ? (avec un nom qui rocks)
|
|
|
00
|
|
|
#16 | |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Citation:
Mais d'un point de vue design, comme tu dis, ça ne serait peut-être pas super clean de déplacer ces méthodes. |
|
|
|
00
|
|
|
#17 | |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 665 ![]() |
Citation:
Mais une telle modification impacterait également un très grand nombre d'APIs externes et de programmes... a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
|
00
|
|
|
#18 |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
Bon, merci adiGuba, j'ai compris l'intérêt, c'est déjà ça !
Mais (je sais, j'suis un boulet Ca consisterait à avoir une méthode genre "getCaller()" ? (ceci dit, ça me plairait bien le getCaller()) Bref, il y a encore un truc qui m'échappe... |
|
|
00
|
|
|
#19 | ||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 665 ![]() |
C'est juste du sucre syntaxe :
Grosso modo lorsque le compilateur voit ceci : Code :
Il le remplace par ce code : Et c'est tout ! Bref on continue à appeler une méthode static, mais on la présente comme une méthode d'instance a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||
|
00
|
|
|
#20 |
![]() ![]() Consultant informatique Inscription : février 2004 Messages : 1 192 ![]() |
Contre,
Ce sucre syntaxique n'apporte rien au développeur moderne (ie assisté d'un IDE Bulbo
__________________
[Java] [NetBeans] [CVS] La FAQ Java Merci de ne pas me poser de questions techniques par MP. !! J'aurais voulu être une conserve !! |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com