[self-interest] Class::Prototyped - Fast prototype-based programming in Perl
Toby Everett
tua at everettak.org
Thu Aug 2 12:12:24 UTC 2001
> Toby Everett and I have come up with a Perl module that gives Perl a
> Self-like object model. If you're interested in using prototype-based
> programming but can't get Self to work, you might consider this.
Just to make a side note, one of the things we have demonstrated through this
is that it is possible to add prototype-based semantics to class-based
object-oriented languages that support run-time inspection and creation of
classes. The metaphors of Self: prototype-based, mirrors and reflection, and
slots, both data, method, and parent, all translated very well and proved very
effective in what is still a very Perlish system. The end-result is that I
can write Perl code using the approaches one uses in Self, and it is a very
liberating and exciting feeling. One overloads the + operator by adding the
method slot '+'. Classes and objects are both first-class citizens - they are
virtually equivalent in the eyes of C::P (the only difference is that named
classes persist even if there are no references to them, where as objects
experience normal destructor behavior). Perl becomes a guise for Self:).
I see no reason why this same thing couldn't be done in other dynamic
class-based object-oriented languages. Basically, all one has to do is write
a reflection system that uses the Self semantics and translates those into the
native inspection system.
--Toby Everett
More information about the Self-interest
mailing list