Bonjour,
voici ce que l'on peut lire dans le livre "Squeak programmation" de Xavier Briffault et de Stéphane Ducasse :
Chapitre 5 -> Notations littérales pour la définition de données -> Caractères et chaînes de caractères (page 88)
"'Je ne suis pas unique' == 'Je ne suis pas unique' rend false."
Or, le test depuis Squeak rend true. Alors que si on stocke d'abord la chaîne dans une variable puis qu'on teste l'égalité avec une constante chaîne, ça renvoie false :
'je ne suis pas unique'=='je ne suis pas unique'. true toto := 'je ne suis pas unique'. toto == 'je ne suis pas unique'. false
Je pense que le deuxième résultat est tout à fait logique. On construit d'abord l'objet toto, puis un objet chaîne de caractère et on teste les deux pointeurs. Il est normal qu'ils soient différents.
Par contre, le résultat du premier test qui renvoie true me paraît un peu bizarre. J'aurai pensé que Squeak créait 2 chaînes de caractères différentes (avec le même contenu mais à 2 emplacements distincts) et donc que le test de pointeur devrait retourner false. Or, contrairement à ce que dit le livre, ce test renvoie true.
Est-ce que quelqu'un peut m'expliquer ? Est-ce un bug de Squeak ou du livre ?
Damien
je pense que c'est un bug du livre car Squeak est different de VW.
en visualWorks on a
'aa' == 'aa' false |toto| toto := 'jlkj'. toto == toto. "true" toto == 'jlkj' false
Dans Squeak, le compileur doit mettre la chaine dasn le literal frame de la methode et n'en alloue pas une seconde. alors qu'en VW deux strings sont allouees. Maintenant il faut que tu fais rarement
'aa' == 'aa' mais plutot tu passes par arguments de methodes donc tu es plus dans la situation normale.
Stef
Chapitre 5 -> Notations littérales pour la définition de données -> Caractères et chaînes de caractères (page 88)
"'Je ne suis pas unique' == 'Je ne suis pas unique' rend false."
Or, le test depuis Squeak rend true. Alors que si on stocke d'abord la chaîne dans une variable puis qu'on teste l'égalité avec une constante chaîne, ça renvoie false :
'je ne suis pas unique'=='je ne suis pas unique'. true toto := 'je ne suis pas unique'. toto == 'je ne suis pas unique'. false Je pense que le deuxième résultat est tout à fait logique. On construit d'abord l'objet toto, puis un objet chaîne de caractère et on teste les deux pointeurs. Il est normal qu'ils soient différents.
Par contre, le résultat du premier test qui renvoie true me paraît un peu bizarre. J'aurai pensé que Squeak créait 2 chaînes de caractères différentes (avec le même contenu mais à 2 emplacements distincts) et donc que le test de pointeur devrait retourner false. Or, contrairement à ce que dit le livre, ce test renvoie true.
Est-ce que quelqu'un peut m'expliquer ? Est-ce un bug de Squeak ou du livre ?
Damien _______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
Chapitre 5 -> Notations littérales pour la définition de données -> Caractères et chaînes de caractères (page 88)
"'Je ne suis pas unique' == 'Je ne suis pas unique' rend false."
Or, le test depuis Squeak rend true. Alors que si on stocke d'abord la chaîne dans une variable puis qu'on teste l'égalité avec une constante chaîne, ça renvoie false :
'je ne suis pas unique'=='je ne suis pas unique'. true toto := 'je ne suis pas unique'. toto == 'je ne suis pas unique'. false Je pense que le deuxième résultat est tout à fait logique. On construit d'abord l'objet toto, puis un objet chaîne de caractère et on teste les deux pointeurs. Il est normal qu'ils soient différents.
Par contre, le résultat du premier test qui renvoie true me paraît un peu bizarre. J'aurai pensé que Squeak créait 2 chaînes de caractères différentes (avec le même contenu mais à 2 emplacements distincts) et donc que le test de pointeur devrait retourner false. Or, contrairement à ce que dit le livre, ce test renvoie true.
Est-ce que quelqu'un peut m'expliquer ? Est-ce un bug de Squeak ou du livre ?
je pense que c'est un bug du livre car Squeak est different de VW.
en visualWorks on a
'aa' == 'aa' false |toto| toto := 'jlkj'. toto == toto. "true" toto == 'jlkj' false
Dans Squeak, le compileur doit mettre la chaine dasn le literal frame de la methode et n'en alloue pas une seconde. alors qu'en VW deux strings sont allouees. Maintenant il faut que tu fais rarement
'aa' == 'aa' mais plutot tu passes par arguments de methodes donc tu es plus dans la situation normale.
Stef
Merci pour la précision, j'ajoute le bug dans l'erratum du bouquin.
Merci pour la précision, j'ajoute le bug dans l'erratum du bouquin.
Merci Au fait quand est-ce que l'on voit ta premiere appli seaside?
Stef
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
stéphane ducasse a écrit :
Merci pour la précision, j'ajoute le bug dans l'erratum du bouquin.
Merci Au fait quand est-ce que l'on voit ta premiere appli seaside?
Stef
Il faudrait d'abord que je commence à regarder comment ça fonctionne. Les tutoriaux sont très rares (j'en ai trouvé un seul pour les débutants) et il n'y a pas de documentation externe (j'espère que les classes sont documentées dans Squeak sinon je vois pas comment je vais commencer). En plus, j'aimerai finir de lire ton bouquin avant de commencer autre chose.
Damien
Lis l'article que l'on vient de publier, http://www.iam.unibe.ch/~scg/Archive/Papers/Duca04eSeaside.pdf abonne toi a la mailing-list seaside, pose des questions, dans la version VisualWorks il y a des commentaires, je vais les pousser pour avoir une version commentee de Seaside en Squeak
Moi je te conseille de prendre l'image de lukas http://www.iamexwi.unibe.ch/studenten/renggli/choose/ et de faire les exemples, ensuite regardes l'exemple du sushishop mais des self halt dans le code et regarde.... Car c'est assez intuitif au debut.
Sinon je ne lirais pas le livre en entier mais le parcourerais et commencerais a coder une petite application et ensuite je lirais la suite car il y a des tas de trucs dont tu n'as pas besoin. Mais le fait d'avoir une petite application par exemple un mini enregistrement de conferences avec les classes personnes, hosting....
Sinon yu as besoin de shout, RefactoringBrowser (sur SqueakMap) et SUnit et le reste a la demande. Moi Je ne connais qu'un tout petit peu de Smalltalk (15%) mais je sais comment trouver de l'information: Method Finder, Messages, Senders, Implementors,.. tu dois apprendre que tout le code est la sous tes doigts.
Stef
On 3 sept. 04, at 20:18, Damien Cassou wrote:
stéphane ducasse a écrit :
Merci pour la précision, j'ajoute le bug dans l'erratum du bouquin.
Merci Au fait quand est-ce que l'on voit ta premiere appli seaside? Stef
Il faudrait d'abord que je commence à regarder comment ça fonctionne. Les tutoriaux sont très rares (j'en ai trouvé un seul pour les débutants) et il n'y a pas de documentation externe (j'espère que les classes sont documentées dans Squeak sinon je vois pas comment je vais commencer). En plus, j'aimerai finir de lire ton bouquin avant de commencer autre chose.
Damien _______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
Lis l'article que l'on vient de publier, http://www.iam.unibe.ch/~scg/Archive/Papers/Duca04eSeaside.pdf abonne toi a la mailing-list seaside, pose des questions, dans la version VisualWorks il y a des commentaires, je vais les pousser pour avoir une version commentee de Seaside en Squeak
Moi je te conseille de prendre l'image de lukas http://www.iamexwi.unibe.ch/studenten/renggli/choose/ et de faire les exemples, ensuite regardes l'exemple du sushishop mais des self halt dans le code et regarde.... Car c'est assez intuitif au debut.
Sinon je ne lirais pas le livre en entier mais le parcourerais et commencerais a coder une petite application et ensuite je lirais la suite car il y a des tas de trucs dont tu n'as pas besoin. Mais le fait d'avoir une petite application par exemple un mini enregistrement de conferences avec les classes personnes, hosting....
Sinon yu as besoin de shout, RefactoringBrowser (sur SqueakMap) et SUnit et le reste a la demande. Moi Je ne connais qu'un tout petit peu de Smalltalk (15%) mais je sais comment trouver de l'information: Method Finder, Messages, Senders, Implementors,.. tu dois apprendre que tout le code est la sous tes doigts.
Merci pour tout ces conseils. Je vais commencer une petite appli alors. J'ai déjà une idée. A propos de shout et du RefactoringBrowser, y'a des tutorials dans lesquels je peux apprendre ce que c'est et comment on s'en sert ?
Merci pour tout ces conseils. Je vais commencer une petite appli alors. J'ai déjà une idée. A propos de shout et du RefactoringBrowser, y'a des tutorials dans lesquels je peux apprendre ce que c'est et comment on s'en sert ?
Tu dois etre plus aventureux :) shout = syntax hightlighting as you type. donc qd tu ecris du code il se colorie au vol :)
RefactoringBrowser => lit le chapitre la dessus dans mon livre. L'idee est de faire des transformations de code avec conservations de comportements.
Smalltalk a eu le premier RB en 1995-06 depuis tout IDE Java qui se respecte se doit d'en avoir un sinon il est mort.
Remarque que RB et Sunit travaille de pair car parfois tu dois changer du code et casser le comportement donc la les tests te disent si tu as qd meme une appli qui marche....mais tout cela est ecrit dans mon bouquin.
Stef
stéphane ducasse a écrit :
Merci pour tout ces conseils. Je vais commencer une petite appli alors. J'ai déjà une idée. A propos de shout et du RefactoringBrowser, y'a des tutorials dans lesquels je peux apprendre ce que c'est et comment on s'en sert ?
Tu dois etre plus aventureux :) shout = syntax hightlighting as you type. donc qd tu ecris du code il se colorie au vol :)
RefactoringBrowser => lit le chapitre la dessus dans mon livre. L'idee est de faire des transformations de code avec conservations de comportements.
Smalltalk a eu le premier RB en 1995-06 depuis tout IDE Java qui se respecte se doit d'en avoir un sinon il est mort.
Remarque que RB et Sunit travaille de pair car parfois tu dois changer du code et casser le comportement donc la les tests te disent si tu as qd meme une appli qui marche....mais tout cela est ecrit dans mon bouquin.
Stef
Tu vois qu'il faut que je continue à lire le livre :-) Je vais sauter les chapitres dont je n'ai pas besoin et commencer à programmer
Merci pour votre aide
squeak-fr@lists.squeakfoundation.org