Re: [perl #47181] Try OO semantics before throwing fatal error On Friday 16 November 2007 16:20:36 Linda W wrote:

> The only thing perl needs to do is follow generally accepted practice...

Who gets to decide what's generally accepted OO practice?

Is dynamic dispatch allowed?  (Smalltalk, Python, Ruby, CLOS)
Is dynamic dispatch forbidden?  (C++, Java, C#... sort of)
Do attributes have access control?  (C++, Java)
Is operator overloading possible for individual objects?  (C++, Ruby)
Is there a method_missing feature?  (Smalltalk, Ruby)
Are there classes?  (C++, Java, Smalltalk, Python, Ruby)
Are there only prototypes?  (Self, JavaScript)
Are there metaclasses?  (Smalltalk, Python, Ruby, CLOS)
Does method dispatch differentiate only on the type of the invocant?  (C++... 
mostly, Java, Python)
Is all method dispatch generic?  (CLOS)
Can methods stand alone as first-class entities?  (Python)
Is the inheritance hierarchy fixed at compile time?  (Java, C#)
Are attributes opaque?  (Java, C#, C++... mostly)
Can you add attributes to a class at runtime?  (getting sick of listing 
languages here)
Can you add attributes to an instance at runtime?
Can you extend built-in classes?
	... at compile time?
	... at runtime?
Are there elements of behavior reuse and polymorphism other than the class 
level?
Do overridden constructors dispatch to parent implementations automatically?
Are anonymous classes available?
Can you create new classes at runtime?
Are singleton classes available?

I'm sure there are plenty of other interesting questions about object 
orientation on which plenty of languages in widespread use now and in the 
recent past have differed, so I'm not sure what exactly "generally accepted 
practice" is, nor why anyone should be surprised that any particular language 
doesn't fully meet those mythical criteria.

I think I've finished with this thread, however.

-- c


