[Python-Dev] Type/class (original) (raw)

Samuele Pedroni Samuele Pedroni pedroni@inf.ethz.ch
Fri, 11 May 2001 16:56:48 +0200 (MET DST)


Hi.

Reading up on MetaClasses in Smalltalk again makes me appreciate the simplicity of a prototype system where everything is just an object -- all objects can be cloned, and some objects are only used for cloning -- they are the exemplars of their type which fill the role of Classes. I agree, I often read that Smalltalk is "simple" up to metaclasses, on the other hand the casual user can just ignore them.

Unfortunately, although prototypes would be a lot simpler, it would be a pretty incompatible change for Python -- I can't think of any way to get there without a lot of breakage.

(Still -- I wonder if there's a way they could be used under the covers in the implementation to make it simpler. Prototype semantics are basically a superset of Class based semantics, which is how it was easy to do Smalltalk in Self.) [Ignoring the fact that code and changes require coders]

Thinking in terms of proto-objects, parent slots and list parent slots:

python instance I have data slots and a parent slot class,

python classe G have data slots and a list parent slot bases,

then we have the python rules (not very uniforms): function from I directly => function function from I.class => bound method function from C => unbound method

That's the difficult part for every model that aims to remain compatible.

Samuele Pedroni.