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