<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Bonjour à tous,<DIV><BR class="khtml-block-placeholder"></DIV><DIV>Je me permet de prendre part à la discussion pour exprimer le point de vue de l'étudiant que je suis :-)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>J'ai touché la première fois à Smalltalk en 2ème année de licence à l'université, avec VisualWorks. J'ai les premiers mois été vraiment dérouté par ce langage, car j'étais plutôt C-Oriented auparavant.</DIV><DIV>L'idée de programmer dans un browser apparaissait comme une hérésie, tout vi-addict que j'étais.</DIV><DIV>D'autre part, je n'avais jamais fait d'objet avant (avant la fac, j'ai fais 3 ans dans une école d'ingénieurs).</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Une équipe utilise ce langage au sein de son laboratoire, et l'utilise comme support pour l'enseignement. Les sujets abordés par le biais de ce langage passent par les concepts de la programmation objet, les IHM, mais aussi les patrons de conception.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>La population à l'université est très hétérogène, notamment du point de vue du parcours des étudiants. Mes camarades de promo, dans une majorité plutôt large, n'ont que faire de Smalltalk. Ils veulent tous faire du Java ou du .Net, parce que, à regarder les offres d'emploi actuelles, c'est ce qui revient. L'approche est pragmatique, et cherche le bénéfice immédiat : la ligne sur le CV. Mais une grande question se pose alors : l'université est elle là pour former du pisseur de code, ou bien pour donner des clés à un esprit capable de les utiliser ?</DIV><DIV>Cependant, en prenant "un peu" de recul, on comprends bien que le langage importe peu, et que les concepts (la programmation séquentielle, objet, ...) prévalent. </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Avec ce recul donc (j'approche de la quille ;) ), je penses que le choix de Smalltalk, langage purement objet, est sans doute plus pertinent que le C++, ou le Java. Le C++ pêche sans doute par son "héritage" (historique) au C, au même titre que Java  vis à vis de l'ensembles des langages aînés : l'un des pré-requis pour apprendre C++ ou Java, c'est le C (ou un langage approchant).</DIV><DIV>Ce dont parle Bernard, je le retrouve dans les rangs de mes camarades : des méthodes à rallonge, frisant les plusieurs dizaines de ligne de code (ce qui, en Smalltalk, craint un peu, non ?)</DIV><DIV>Et le pire, c'est que la majorité d'entre eux (l'immense majorité, même), est FIERE d'avoir écrit tant de code. Ce comportement, je le retrouve certes à l'université, mais aussi chez mes anciens camarades d'école d'ingénieur (qui me regardent d'un oeil bizarre lorsque je leur parle de composite, visiteur, singleton ...)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Bref, tout ça pour dire que, de mon point de vue d'étudiant, Smalltalk est sans doutes un excellent langage pour l'enseignement de la POO. Surtout lorsque celui ci est réalisé par des personnes compétentes et motivées (suivez mon regard :-). Quand à savoir si Squeak s'y prête bien, je ne peux le dire : j'ai appris sur Visualworks. Cependant, on retrouve dans ces deux environnements des browser, des debbugers, et divers outils franchement sympathiques. Je regrette peut être l'aspect graphique de Squeak, qui fait peut être un peu "jouet" aux yeux d'un étudiant : celui ci n'a en général, jamais entendu parler de Smalltalk (sauf si c'est un abonné de GLMF, n'est-ce pas Serge, Stéphane, Hilaire ... ;-). Cumulé à cela, l'aspect joue sans doute en défaveur de l'environnement. Mais cela ne dure peut-être qu'un temps ?</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>J'espères sincèrement que cette avis vous permettra de prendre une décision adaptée.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Valentin</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><DIV><DIV>Le 7 juil. 07 à 18:23, Bernard Notarianni a écrit :</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">On 7/4/07, Serge Stinckwich &lt;<A href="mailto:Serge.Stinckwich@info.unicaen.fr">Serge.Stinckwich@info.unicaen.fr</A>&gt; wrote:</DIV> <BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Le 4 juil. 07 à 09:02, Hilaire Fernandes a écrit :</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt; <A href="mailto:jchauvea@etu.info.unicaen.fr">jchauvea@etu.info.unicaen.fr</A> a écrit :</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;&gt; En effet, ayant personnellement suivi les cours de Serge</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;&gt; Stinckwich à l'IUT, de nombreux étudiants voient l'apprentissage</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;&gt; par Squeak comme quelque chose de négatif au premier abord. Pour</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;&gt; ceux qui prennent la</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;&gt; peine de l'utiliser sérieusement et de s'y intéresser un minimum,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;&gt; leurs</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt; J'aime ce texte "Beat the average", (<A href="http://www.paulgraham.com">http://www.paulgraham.com</A>/</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt; avg.html).</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt; Seulement une petite partie comprendront et en tirerons</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt; d'importants bénéfices, les autres resteront dans la médiocrité (au</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt; sens médian du terme). C'est normal.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&gt;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Sauf que c'est un peu déprimant pour l'enseignant :-(</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">-- <SPAN class="Apple-converted-space">                                                        </SPAN>oooo</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Dr. Serge Stinckwich <SPAN class="Apple-converted-space">                                    </SPAN>OOOOOOOO</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Université de Caen&gt;CNRS UMR 6072&gt;GREYC&gt;MAD <SPAN class="Apple-converted-space">              </SPAN>OOESUGOO</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-converted-space">                                                           </SPAN>oooooo</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Smalltalkers do: [:it | All with: Class, (And love: it)] <SPAN class="Apple-converted-space">  </SPAN>\<SPAN class="Apple-converted-space">  </SPAN>/</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-converted-space">                                                             </SPAN>##</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV> </BLOCKQUOTE><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Je ne suis pas enseignant mais je travaille quotidiennement avec des</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">équipes qui développent des applications en entreprises, en Java, C#</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">et parfois même en C++. Il s'agit de personnes ayant entre 0 et 10 ans</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">d'expériences en entreprises.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">J'ai sincèrement le sentiment que 97% d'entre elles n'ont pas compris</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">ce qu'est la POO. Pour être bonnète, j'ai moi mêmes compris la POO</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">lorsque je me suis intéressé à Smalltalk il n'y a pas si longtemps que</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">ca.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Le résultat est assez désastreux en terme de design et de</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">maintenabilité des applications produites. Quasiment tout le monde</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">code "the J2EE way", en empilant des couches passe-plats. Pour la</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">plupart des développeurs, objet est synonymes de DTO (ou bean dans le</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">monde Java): des propriétés rassemblées au sein d'une classe avec</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">uniquement des getters setters et aucun traitements. Ils placent les</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">traitements dans ce qu'ils appellent des "services", c'est à dire des</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">classes stateless comportant essentiellement des méthodes statiques.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Ca donnent des paquets de "ServicesBidules", "ServiceShmoll" ou</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">"MachinHelper", dont certains atteignent les 1500 lignes de code dans</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">la même classe.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Autre pattern que j'observe souvent: le singleton. Il leur semble</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">souvent plus simple de créer toute une palettes de singleton contenant</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">leurs DTO, pour que les multiples couches de services/helper qu'ils</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">empilent puissent y accéder et les modifier plus facilement.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Bref, en résumé, ils codent en Java/C# comme en COBOL.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">J'avoue qu'il est parfois frustrant de travailler dans ces contextes.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Par ailleurs, j'ai eu la chance depuis quelques mois de travailler</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">avec une équipes jeunes, sur un projet XP que je coach. J'ai vu</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">l'équipe avoir envie de sortir de ces poncifs Java et lutter contre</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">les "architectes J2EE" pour parvenir à imposer un design plus objet.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Ces développeurs sortaient d'une école où l'on enseigne la POO avec Smalltalk.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Je peux vous garantir que l'on voyait clairement la différence entre</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">eux et ceux qui n'avait pas suivi le même enseignement.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Squeak-fr mailing list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:Squeak-fr@lists.squeakfoundation.org">Squeak-fr@lists.squeakfoundation.org</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr</A></DIV> </BLOCKQUOTE></DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV>-- Valentin Guerlesquin</DIV><DIV>-- <A href="mailto:valentin@guerlesquin.net">valentin@guerlesquin.net</A></DIV><DIV>-- </DIV><DIV>-- <A href="http://www.guerlesquin.net">www.guerlesquin.net</A></DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR class="Apple-interchange-newline"></SPAN></SPAN> </DIV><BR></DIV></BODY></HTML>