j'ai du apprendre smalltalk dans le cadre d'un projet de génie logiciel (avec seaside, en utilisant visualworks.)
Il y a une notion qui est très utile et qui marche pas trop mal, c'est que *tout code est objet*. C'est à dire qu'il existe des "blocs" comme tu dis:
[moncode.]
L'interet, c'est qu'on peut passer du code en parametre, et faire ainsi des callbacks très reactifs. Par ex je me souviens qu'en seaside on pouvait incrémenter un compteur à partir d'un lien de cette manière:
html add: Link new onClicked:[compteur = compteur+1.].
(pour ceux qui sont novices, l'équivalent du . ou -> du C++ est l'espace, tout se lit de gauche à droite, les appels de methode sont des :, l'allocation d'un nouvel objet est l'appel de la methode new sur sa classe (qui est aussi un objet) et les instructions se terminent par un .)
le langage a des particularités très interessantes, mais c'est dommage que les environnements ne soient pas plus attractifs (les 2 premières semaines avec visualworks n'ont pas été très facile).
[^] # Re: comparaison Rails vs Seaside
Posté par Aris Adamantiadis (site web personnel) . En réponse à la dépêche Seaside 2.7. Évalué à 5.
Il y a une notion qui est très utile et qui marche pas trop mal, c'est que *tout code est objet*. C'est à dire qu'il existe des "blocs" comme tu dis:
[moncode.]
L'interet, c'est qu'on peut passer du code en parametre, et faire ainsi des callbacks très reactifs. Par ex je me souviens qu'en seaside on pouvait incrémenter un compteur à partir d'un lien de cette manière:
html add: Link new onClicked:[compteur = compteur+1.].
(pour ceux qui sont novices, l'équivalent du . ou -> du C++ est l'espace, tout se lit de gauche à droite, les appels de methode sont des :, l'allocation d'un nouvel objet est l'appel de la methode new sur sa classe (qui est aussi un objet) et les instructions se terminent par un .)
le langage a des particularités très interessantes, mais c'est dommage que les environnements ne soient pas plus attractifs (les 2 premières semaines avec visualworks n'ont pas été très facile).