Re: [Squeak-fr] Expérience enseignement1er cycle universitaire

Valentin Guerlesquin valentin at guerlesquin.net
Sam 7 Juil 23:57:02 UTC 2007


Bonjour à tous,

Je me permet de prendre part à la discussion pour exprimer le point  
de vue de l'étudiant que je suis :-)

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.
L'idée de programmer dans un browser apparaissait comme une hérésie,  
tout vi-addict que j'étais.
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).

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.

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 ?
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.

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).
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 ?)
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 ...)

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 ?

J'espères sincèrement que cette avis vous permettra de prendre une  
décision adaptée.

Valentin


Le 7 juil. 07 à 18:23, Bernard Notarianni a écrit :

> On 7/4/07, Serge Stinckwich <Serge.Stinckwich at info.unicaen.fr> wrote:
>>
>> Le 4 juil. 07 à 09:02, Hilaire Fernandes a écrit :
>>
>> > jchauvea at etu.info.unicaen.fr a écrit :
>> >> En effet, ayant personnellement suivi les cours de Serge
>> >> Stinckwich à l'IUT, de nombreux étudiants voient l'apprentissage
>> >> par Squeak comme quelque chose de négatif au premier abord. Pour
>> >> ceux qui prennent la
>> >
>> >
>> >
>> >> peine de l'utiliser sérieusement et de s'y intéresser un minimum,
>> >> leurs
>> >
>> > J'aime ce texte "Beat the average", (http://www.paulgraham.com/
>> > avg.html).
>> > Seulement une petite partie comprendront et en tirerons
>> > d'importants bénéfices, les autres resteront dans la médiocrité (au
>> > sens médian du terme). C'est normal.
>> >
>>
>> Sauf que c'est un peu déprimant pour l'enseignant :-(
>>
>> --                                                         oooo
>> Dr. Serge Stinckwich                                     OOOOOOOO
>> Université de Caen>CNRS UMR 6072>GREYC>MAD               OOESUGOO
>>                                                            oooooo
>> Smalltalkers do: [:it | All with: Class, (And love: it)]   \  /
>>                                                              ##
>>
>
> Je ne suis pas enseignant mais je travaille quotidiennement avec des
> équipes qui développent des applications en entreprises, en Java, C#
> et parfois même en C++. Il s'agit de personnes ayant entre 0 et 10 ans
> d'expériences en entreprises.
>
> J'ai sincèrement le sentiment que 97% d'entre elles n'ont pas compris
> ce qu'est la POO. Pour être bonnète, j'ai moi mêmes compris la POO
> lorsque je me suis intéressé à Smalltalk il n'y a pas si longtemps que
> ca.
>
> Le résultat est assez désastreux en terme de design et de
> maintenabilité des applications produites. Quasiment tout le monde
> code "the J2EE way", en empilant des couches passe-plats. Pour la
> plupart des développeurs, objet est synonymes de DTO (ou bean dans le
> monde Java): des propriétés rassemblées au sein d'une classe avec
> uniquement des getters setters et aucun traitements. Ils placent les
> traitements dans ce qu'ils appellent des "services", c'est à dire des
> classes stateless comportant essentiellement des méthodes statiques.
> Ca donnent des paquets de "ServicesBidules", "ServiceShmoll" ou
> "MachinHelper", dont certains atteignent les 1500 lignes de code dans
> la même classe.
>
> Autre pattern que j'observe souvent: le singleton. Il leur semble
> souvent plus simple de créer toute une palettes de singleton contenant
> leurs DTO, pour que les multiples couches de services/helper qu'ils
> empilent puissent y accéder et les modifier plus facilement.
>
> Bref, en résumé, ils codent en Java/C# comme en COBOL.
>
> J'avoue qu'il est parfois frustrant de travailler dans ces contextes.
>
>
> Par ailleurs, j'ai eu la chance depuis quelques mois de travailler
> avec une équipes jeunes, sur un projet XP que je coach. J'ai vu
> l'équipe avoir envie de sortir de ces poncifs Java et lutter contre
> les "architectes J2EE" pour parvenir à imposer un design plus objet.
>
> Ces développeurs sortaient d'une école où l'on enseigne la POO avec  
> Smalltalk.
>
> Je peux vous garantir que l'on voyait clairement la différence entre
> eux et ceux qui n'avait pas suivi le même enseignement.
> _______________________________________________
> Squeak-fr mailing list
> Squeak-fr at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

-- Valentin Guerlesquin
-- valentin at guerlesquin.net
-- 
-- www.guerlesquin.net



-------------- section suivante --------------
Une pièce jointe HTML a été enlevée...
URL: http://lists.squeakfoundation.org/pipermail/squeak-fr/attachments/20070708/af1ac528/attachment-0001.htm


Plus d'informations sur la liste de diffusion Squeak-fr