[No, my email address doesn't begin `m...@'. Fixed.] Michele Simionato <michele.simion...@gmail.com> writes:
> On Jan 21, 2:11 am, Mark Wooding <m...@distorted.org.uk> wrote: > >> CLOS is much more complex and dynamic than Python's object system; >> but it can be compiled very aggressively. > > I agree that CLOS is complex and that it can be compiled very > aggressively, but I do not think that it is more dynamic than Python. > What feature are you alluding to? Multimethods? There are many Python > implementations of them, they are just not in the standard library. > Or are you referring to interactive facilities, such as the one > discussed in this recipe http://code.activestate.com/recipes/160164 ? I'm referring to a number of features: * Redefinition of classes, yes. Interactive development is very frustrating without this. Thanks for that link, by the way! * CHANGE-CLASS to change the class of instances. This is more than just assigning to mumble.__class__, since it correctly initializes the slots present in the new class which were absent in the old. * And all of the fancy MOP tricks you can play: inventing new slot classes; messing with class-precedence-list orderings (Python's MRO). It's a shorter list than I'd hoped! Still, these features kind of multiply up. You can redefine a class using a new metaclass and slot options, and all the instances are updated, for example. Anyway, I think I exaggerated when I said that CLOS was `much more dynamic', but it is /somewhat/ more dynamic, and still amenable to optimization; since my point was that dynamism in a language isn't necessarily antithetical to compilation, that's still sufficient. Thanks for keeping me honest! -- [mdw] -- http://mail.python.org/mailman/listinfo/python-list