On Tue, Jan 14, 2003 at 03:00:17PM -0500, Dan Sugalski wrote:
> At 11:44 AM -0800 1/14/03, Mr. Nobody wrote:
> >Seems pretty reasonable, but don't you mean PerlRef, PerlAttr, PerlClass,
> >PerlObject?
> 
> Nope. There's nothing particularly perlish about them, and if we're 
> going to have a common base set of object functionality, they'll 
> probably be named ParrotRef/Attr/Class/Object. They should suffice 
> for perl, python, and ruby (at the very least) unless I've missed 
> something.

Hmm, well. Are you really trying to make it so Python won't have to
make a specialized subclass (err, subPMC?) of this system? If so, then
it'll probably need drastic changes.. I'm a Python hacker who's pretty
familiar with its object system. If you want, I can offer up some
explanations/advice for making this system usable directly by Python.

As it stands, an implementation of the Python object system could
definitely be implemented _in terms of_ what you have now, but, for
example, the method system that you have worked out now would be
totally unusable (afaics), as instance methods have some pretty
whacky, dynamic semantics. It'd probably have to be implemented in
terms of properties.

The problem, of course, is that either you go more static and make the
very dynamic, reflective languages like Python harder to implement (or
prevent them from making use of your existing abstractions like
methods, as explained above), or you go more dynamic and make the more
static languages (like Haskell?) slower because they'd have to
implement their features in terms of dynamic ones, when a lot of the
information could be available at compile-time.

But who knows, maybe it could be made modular enough (i.e., more
interface-oriented?) to allow the best of both worlds -- I'm far too
novice wrt Parrot to figure out what it'd look like, unfortunately.

I've been lurking this thread for a while, very interested, and unsure
if I should offer my suggestions for making the object system more
compatible with Python, and this looks like a great chance for me to
jump in. :-)

-- 
 Twisted | Christopher Armstrong: International Man of Twistery
  Radix  |          Release Manager,  Twisted Project
---------+     http://twistedmatrix.com/users/radix.twistd/

Reply via email to