Hello all,

I have been reading the recently updated Synopsis 12, and a few things jumped out at me. In the "Classes" section, classes are described like this:

    Classes are primarily for instance management, not code reuse.

Later in the same section the following is stated:

Every class is an instance of its metaclass. You can get at the metaclass of any object via the .meta method.

Later on in the "Construction and Initialization" section, the following comment is made:

    All classes inherit a default C<new> constructor from C<Object>.

Now, making the assumption that "instance management" includes the creation of new instances, which I think is a reasonable assumption to make. It would seem that &new should not be a method in Object, but instead a method of the class (aka - the MetaClass instance). This would then mean that MyClass.new() would be really mean MyClass.meta.new() (which is not without precedence since .isa and .can work the same way).

I would then describe Object's role in this as the "initialization" of new instances, as Object is where it makes the most sense for BUILDALL and BUILD to reside.

Stevan




Reply via email to