Précédent   Forum du club des développeurs et IT Pro > Java > Communauté Java > Débats

Débats Les débats et sondages sur le langage et les technologies Java

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: Êtes-vous pour ou contre cette proposition ?
Pour 114 37,50%
Contre 190 62,50%
Votants: 304. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse
 
Outils de la discussion
Vieux 19/12/2007, 19h03   #41
elitost
Rédacteur
 
Avatar de elitost
 
Homme Eric REBOISSON
Consultant informatique
Inscription : septembre 2003
Messages : 2 031
Détails du profil
Informations personnelles :
Nom : Homme Eric REBOISSON
Âge : 35
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2003
Messages : 2 031
Points : 6 879
Points : 6 879
Envoyer un message via ICQ à elitost Envoyer un message via AIM à elitost Envoyer un message via MSN à elitost Envoyer un message via Yahoo à elitost Envoyer un message via Skype™ à elitost
J'aime bien ce genre de raccourci de code, souvent moins lisible, mais avec l'habitude...
elitost est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 23h33   #42
nicorama
Membre Expert
 
Avatar de nicorama
 
Inscription : juillet 2006
Messages : 765
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 765
Points : 1 055
Points : 1 055
C'est un raccourci de codeur de C, qui mettent tout un programme dans un for. Je ne l'utiliserai jamais, c'est une façon de comprendre la grammaire très différente, et à priori je ne vois pas pourquoi j'en empêcherai les autres.

Sauf qu'à trop faire ce genre de variance, je vais tirer la gueule le jour où il faudra débugguer le programme d'un collègue. Et dans le cadre des projets open-source, merci la sère-mi !
Donc contre.
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT.
API Simple et Productive. Avec style.
nicorama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 08h39   #43
benwit
Rédacteur
 
Avatar de benwit
 
Inscription : septembre 2004
Messages : 1 640
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 1 640
Points : 3 163
Points : 3 163
Du même avis que CyberChouan, Bulbo et woodwai.

Citation:
Envoyé par CyberChouan Voir le message
Contre!
Je ne suis pas contre le principe de chaînage, mais contre la syntaxe extrêmement ambigüe.
On peut déjà le faire en retournant this.
Je vais voir la proposition 10...
benwit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 11h05   #44
ludosoft
Membre habitué
 
Avatar de ludosoft
 
Homme Ludovic Martin
Chef de projet technique
Inscription : juillet 2002
Messages : 95
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Martin
Âge : 32
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Chef de projet technique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2002
Messages : 95
Points : 116
Points : 116
Envoyer un message via MSN à ludosoft Envoyer un message via Skype™ à ludosoft
J'avoue que l'idée est bonne mais manque de clarté dans sa "syntaxisation".

Autant que je me souvienne en Pascal il y a une syntaxe (avec le mot clé "with") qui permettait d'aboutir à se genre de simplification :
Code :
1
2
3
4
5
6
7
8
9
10
11
class Builder {
    void setSomething(Something x) {}
    void setOther(Other x) {}
    Thing result() {}
}
 
with new Builder(){
    setSomething(something);
    setOther(other);
    Thing thing = result();
}
Notez qu'il reste à savoir quelle serait la porté de thing.
ludosoft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 11h11   #45
mbaumeler
Invité régulier
 
Inscription : mai 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mai 2006
Messages : 6
Points : 6
Points : 6
Venant de faire de la maintenance de code sur un projet Delphi/Pascal la possibilité offerte avec le with donne du code illisible et c'est la galère pour bosser dessus...
C'est illisible, ça fout le bordel et merci les mals de cranes...
mbaumeler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 11h25   #46
Alec6
Membre confirmé
 
Inscription : juillet 2002
Messages : 623
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 623
Points : 297
Points : 297
Est ce qu'on finira comme en java script hihi

CONTRE !

Ctrl C ctrl V c'est pas long
Comprendre le code d'un autre ca l'est par contre.

Est ce qu'une méthode avec void ne renvoie pas true ou 1 quand son process a fonctionné ?
Alec6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 11h31   #47
ludosoft
Membre habitué
 
Avatar de ludosoft
 
Homme Ludovic Martin
Chef de projet technique
Inscription : juillet 2002
Messages : 95
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Martin
Âge : 32
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Chef de projet technique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2002
Messages : 95
Points : 116
Points : 116
Envoyer un message via MSN à ludosoft Envoyer un message via Skype™ à ludosoft
Citation:
Envoyé par mbaumeler Voir le message
Venant de faire de la maintenance de code sur un projet Delphi/Pascal la possibilité offerte avec le with donne du code illisible et c'est la galère pour bosser dessus...
C'est illisible, ça fout le bordel et merci les mals de cranes...
Oui c'est le genre de truc dont il ne faut pas abuser (comme le fameux "goto"). Moi aussi j'ai eu ce genre de galère avec des with dans des blocs dépassant la hauteur de l'écran...

Désolé d'avoir réveillé ton mal de crane !
ludosoft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 14h48   #48
xavlours
Membre Expert
 
Avatar de xavlours
 
Inscription : février 2004
Messages : 1 833
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 1 833
Points : 2 176
Points : 2 176
Contre.

Après l'expérience des StringBuilders, l'apport est anecdotique. Au contraire il est plus facile de relire la répétition d'une variable qu'un chaînage.

Au pire, pour les grosses feignasses avec de longs chaînages on peut toujours mettre un bloc d'accolade pour utiliser un alias court de la variable.
__________________
"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.
xavlours est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 16h08   #49
kalysto
Membre VIP
 
Avatar de kalysto
 
Guillaume Sauthier
Développeur
Inscription : mars 2003
Messages : 441
Détails du profil
Informations personnelles :
Nom : Guillaume Sauthier
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : mars 2003
Messages : 441
Points : 557
Points : 557
Je ne vois pas trop en quoi ca apporte quelque chose au langage Java ?
On peut deja le faire (regardons StringBuilder), c'est juste un détail d'implémentation.

Si le question est faut-il généraliser cet emploi, j'avouerais que je suis plutot pour, genre certaines classe du JDK pourront supporter ces invocations chainées. Mais il faut que ca reste à la discretion du développeur.

La, on parle de toutes les methodes qui retournent void retourneraient plutot this, et ca de facon systematique ? Je trouve que c'est un peu bizarre, ca touche finalement aux interfaces que le developpeur fournit. Si il ne controle plus ses types de retour ou s'il veut empecher le chainage, comment va-il faire ?
kalysto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 18h08   #50
jproto
Membre éclairé
 
Inscription : décembre 2005
Messages : 315
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : décembre 2005
Messages : 315
Points : 300
Points : 300
L’exemple donné me laisse penser que cela peut s’appliquer avec un type de retour puisqu’il est présenté :

Code :
1
2
3
4
5
 
Thing thing = new Builder()    
         .setSomething(something)    
         .setOther(other)    
         .result();
Or result() retourne bien un objet (a moins que je sois passé à côté de quelque chose).

C’est là le seul point que je trouve beaucoup moins clair, et qui me laisse dubitatif.
jproto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 01h57   #51
Gargamail
Invité de passage
 
Inscription : décembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 4
Points : 2
Points : 2
Je ne suis pas fan des chaînages. Comme on l'a si bien dit avant moi, on est perdu et on ne sait plus quel objet on manipule au final.

Et puis, regardez la méthode add(Object) de Collection. Elle renvoie un boolean qui peut être très utile. Si on encourage le chaînage, on va chercher à renvoyer this (ou un void interprété comme un this) et perdre cette information utile.
Je dis « Non ! ».
Gargamail est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 07h50   #52
zais_ethael
Membre émérite
 
Inscription : mars 2005
Messages : 1 064
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2005
Messages : 1 064
Points : 890
Points : 890
Citation:
Envoyé par bulbo Voir le message
Pour moi c'est du grand n'importe quoi et pourquoi pourrait on chainer les méthodes retournant void (avec un this implicite) et pas les méthodes retournant un type particulier ou du coup pas de this mais le type de retour.
C'est une sorte de bonne règle de programmation utilisés par certains pour optimiser la syntaxe. Plutot que de faire renvoyer void à une méthode ("rien", donc c'est inutile), autant renvoyer this à la place.

Néanmoins je suis assez d'accord avec toi. Autant présenté comme ça ça pourrait peut-être être utile, autant on ne peut pas nier que c'est bizarre, et comme je n'ai jamais vu de truc semblable dans un autre langage je serais plus enclin de voter contre.
zais_ethael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 09h34   #53
Alesque
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 51
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 51
Points : 37
Points : 37
J'ai voté contre car à mon humble avis c'est plus un problème de design d'une API plutôt qu'une feature à ajouter au niveau du langage lui même.

Si on veut ce genre de comportement, il suffit de retourner this sur les setter.
Alesque est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 09h56   #54
djo.mos
Expert Confirmé Sénior
 
Avatar de djo.mos
 
Inscription : octobre 2004
Messages : 4 678
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 4 678
Points : 7 003
Points : 7 003
J'ai voté contre.
Comme évoqué précédemment, ceci peut être réalisé (et est fait dans de nombreux apis existants) en retournant this.
Je crois aussi que ceci prête à confusion...
Bref, je deteste un peu le fait que quelque chose ne se comporte pas exactement de la façon qu'elle était censé faire .. Une méthode qui retourne void est censée être appelé dans une instruction, et puis c'est tout !
Citation:
Envoyé par Alesque Voir le message
J'ai voté contre car à mon humble avis c'est plus un problème de design d'une API plutôt qu'une feature à ajouter au niveau du langage lui même.

Si on veut ce genre de comportement, il suffit de retourner this sur les setter.
Exactement !
__________________
Mon Blog | Mes Cours | Moi sur twitter
djo.mos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 10h39   #55
jproto
Membre éclairé
 
Inscription : décembre 2005
Messages : 315
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : décembre 2005
Messages : 315
Points : 300
Points : 300
Citation:
Envoyé par jproto Voir le message
L’exemple donné me laisse penser que cela peut s’appliquer avec un type de retour puisqu’il est présenté :

Code :
1
2
3
4
5
 
Thing thing = new Builder()    
         .setSomething(something)    
         .setOther(other)    
         .result();
Or result() retourne bien un objet (a moins que je sois passé à côté de quelque chose).

C’est là le seul point que je trouve beaucoup moins clair, et qui me laisse dubitatif.
OK, je reprends ce que j'ai dis, j'étais bien à côté de la plaque.

Perso, maintenant que j'ai changé de céréales le matin, et que j'y vois donc un peu plus clair, je vote contre.
Sincèrement, je n'y vois pas là un gain en lisibilité, bien au contraite.
jproto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 17h28   #56
Amine_sas
Membre éclairé
 
Avatar de Amine_sas
 
Étudiant
Inscription : juin 2005
Messages : 245
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 245
Points : 307
Points : 307
Envoyer un message via Yahoo à Amine_sas Envoyer un message via Skype™ à Amine_sas
Contre,
Je ne trouve pas ça très élégant.
Amine_sas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2007, 17h32   #57
ripounet
Invité régulier
 
Inscription : septembre 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 6
Points : 7
Points : 7
Par défaut Contre

- pas d'apport significatif
- bonjour le debug pas à pas ... même en étalant sur plusieurs lignes, c'est très pénible
ripounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 11h44   #58
FranT
Membre du Club
 
Inscription : mai 2002
Messages : 130
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 130
Points : 43
Points : 43
[QUOTE=bassim;2781310]En Pascal , si je me rappelle bien on fait comme ça:
Code :
1
2
3
4
5
6
with monObjet do
begin
setSomething();
setChose();
traitemant();
end;
en java ça serait:
Code :
1
2
3
4
5
with monObjet {
setSomething();
setChose();
traitement(getChose());
}
Quand je me suis mis à Java, c'est l'une des premières choses que j'ai regrettées par rapport à Pascal/delphi. Je suis pour à 100%.
__________________
Si un jour on te reproche que ton travail n'est pas un travail de professionnel, dis-toi bien que l'Arche de Noé a été construite par des amateurs et le Titanic par des professionnels...
FranT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 12h17   #59
azalsup
Membre habitué
 
Inscription : novembre 2007
Messages : 129
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 129
Points : 131
Points : 131
J'ai voté oui mais il faudra revoir la syntax. Car ca va etre un peu illisible.

Personnellement j'opte pour deux solution :
- 1 : un mot clee genrs last ou self ( un peu comme le this)
- 2 : prendre en compte l'indentation (comme en python)
azalsup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 12h29   #60
bulbo
Rédacteur
 
Avatar de bulbo
 
Homme
Consultant informatique
Inscription : février 2004
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : février 2004
Messages : 1 192
Points : 1 905
Points : 1 905
Citation:
Envoyé par azalsup Voir le message
J'ai voté oui mais il faudra revoir la syntax. Car ca va etre un peu illisible.

Personnellement j'opte pour deux solution :
- 1 : un mot clee genrs last ou self ( un peu comme le this)
- 2 : prendre en compte l'indentation (comme en python)
L'indentation dans un langage c'est n'imp, comment compter des caractères invisible ? Super idée qu'ils ont eu en python, bien heureux qu'on ai pas ça en java moi.

Bulbo
__________________
[Java] [NetBeans] [CVS]
La FAQ Java
Merci de ne pas me poser de questions techniques par MP.
!! J'aurais voulu être une conserve !!
bulbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h56.


 
 
 
 
Partenaires

Hébergement Web