Magazine High tech

Les super-pouvoirs de Smalltalk

Publié le 05 septembre 2008 par Serge Stinckwich

Martin McClure et Travis Griggs organise prochainement un workshop à OOPSLA’08 sur les “super-pouvoirs de Smalltalk”. En effet Smalltalk (mais également d’autres langages dynamiques comme Ruby, Python ou encore CLOS) offre des fonctionnalités en dehors des pratiques habituelles des langages de programmation orienté-objet usuels : pouvoir ajouter ou d’enlever des méthodes d’une classe à l’exécution, changer la classe d’un objet, …

La méthode #doesNotUnderstand:, qui a donné son nom à ce blog, en fait parti. Les classes Smalltalk peuvent redéfinir cette méthode. Lorsqu’un message destiné à un objet n’est implémenté par aucunes des super-classes de cet objet, un message #doesNotUnderstand: avec comme paramètre le message original est renvoyé à l’objet. En redéfinissant cette méthode, on la possibilité de récupérer n’importe quelles messages et ainsi de définir des mécanismes réflexifs ou distribués. On se reportera à la page 108 du livre Squeak par l’exemple pour une explication détaillée de ce mécanisme.

Ces fonctionnalités font la puissance de Smalltalk mais également sont la source de nombreux problèmes (des super-pouvoir pour les super-villains) : sécurité, mauvaise conception, … Le workshop se propose de faire le point sur les avantages et les inconvénients de ces super-pouvoirs.

Et vous lecteurs de ce blog, utilisez vous les super-pouvoirs de Smalltalk ? Quelles expériences heureuses ou malheureuses pouvez vous nous faire partager ?

Smalltalk WonderGirl

Dessin de Ray J.A. Mouëza


Retour à La Une de Logo Paperblog

Dossier Paperblog

Magazine