Would it make sense for the syntax to be more like my $obj3 = $obj.new;
Of course, that would kill my ".= new" idea for instantiation (since it would call an instance-based new instead of class-based), but I'm getting less fond of that syntax anyway (though I think .= should definitely be supported in the language, and $a .= foo; should DTRT, ie, $a = $a.foo). > > On Monday, October 14, 2002, at 07:54 PM, Mark J. Reed wrote: > > Heh, indeed. :) But seriously, you could do worse. JavaScript > > receives > > a lot of (IMHO) undeserved criticism. The name is a blatant marketing > > No, I've had to use it off-and-on for the past year... it deserves it. > :-) But enough of that. > > I agree, prototype based inheritance is really useful sometimes. > (Those of you not subjected to JS may be more familiar with > Class::Classless, a quite nice perl5 implementation.) > > I'd definitely like to see builtin support for instance based > inheritance. I've found many, many uses for Class::Classless, and have > made halfbreed variations of it for several special-case situations. > IMO the best situation would be to have both worlds collide; not > strictly class-based, not strictly proto-based, but a mix-and-match of > each in accordance to the particular problem you're trying to solve. > > An interesting way to do this could simply be to allow object > instances, as well as normal classes, in the inheritance tree; you > could then mix a prototype-based object with, for example, several > class-based mixin behaviors, etc. > > Something like: > > my $obj = Something.new; # (1) obj based on a class > > class MyClass is $obj {...} # (2) a class based on an obj! > > my $obj2 = MyClass.new; # (3) obj based on a class based on > an obj > > my $obj3 isa $obj; # (4) an obj based on another obj > > my $obj4 isa $obj isa MyClass; # (5) obj + mixin (but what syntax???) > > > Note that (2) would have interesting implications if you changed $obj > runtime, but would be very uncommon. (4,5) could be quite common, tho. > And (4,5) need to use a word other than 'is', which means that > currently none of these syntaxes look anything alike. :-P > > Mixing OO frameworks is quite useful in some real-world situations. > Sometimes it's more efficient to change your OO implementation than to > try to translate your problem to fit the one you're given. > > MikeL > -- Adam Lopresto ([EMAIL PROTECTED]) http://cec.wustl.edu/~adam/ All I want is a warm bed, a kind word, and unlimited power.