I'm not a language purist by any means. I consider myself pragmatic, but realize I'm often idealistic. It's hard to reconcile those two ideas, though.
Consider polymorphism. I've most often seen it explained in terms of inheritance. I'm not a big fan of strong typing in general (at least as C and its descendants do it), but mixing polymorphism with the typing system seems... really wrong. Part of the reason Test::MockObject works is because polymorphism isn't limited to objects that share a common ancestor.
The secret is, objects which share a common interface are isomorphic.
Okay, it's not a very well-kept secret. Still, I've seen (and written) too much Perl code that relies on
isa(). (Hey, at least I'm way over checking
ref() so often!)
I'd like to see that Perl 6 doesn't encourage falling into that trap. At least, I'd like to see that Perl 6 encourages composition and delegation as well as it encourages inheritance. (Having failed to convince Allison completely through mad rhetorical skills, I resorted to code.)
As always, I may be way off track here. Once I figured out the way things really ought to work, though, they made a great deal more sense.