On Wednesday 24 November 2004 11:40 pm, Jim Weirich wrote:
| On Wednesday 24 November 2004 10:32 pm, Yukihiro Matsumoto wrote:
| >     on Thu, 25 Nov 2004 12:19:47 +0900, "trans.  (T. Onoma)"
|
| <transami / runbox.com> writes:
| > |I think that's good. But you can have "kernelless" object without
| > | loosing "single class tree":
| > |
| > |  MyClass < Object < ObjectShell
| >
| > I don't think I understand what you mean.  What does ObjectShell mean?
|
| I'm guessing that ObjectShell is the ultimate blank slate.  It is the root
| of the object system and only provides the absolute minimum number of
| methods (probably only __id__ and __send__).  All normal objects inherit
| from Object as they do now, but special objects that don't want all the
| Object stuff by default (e.g. things like Builder or dynamic proxy objects)
| could inherit from ObjectShell.

This is right. 

I do not know if there is a saying in Japanese like we have in English: "shell 
of a __thing__", which means that __thing__ is a such on the outside, but not 
so inside --hence "shell of an Object" -> ObjectShell. Of course a better 
name might just be ObjectClass.

I concur with Jim that it would only have "__meth__" style methods. In 
addition to the two mentioned above I might add #__class__ and a 
__method_missing__ callback.

It would be useful for OpenStruct, and maybe DRb too.

T.

P.S. Maybe also (alhtough I'm not at all sure about this) the class should not 
be reopenable. ?