chromatic at wgz.org
Thu Jan 18 13:56:42 GMT 2007
On Thursday 18 January 2007 00:10, Luis Motta Campos wrote:
> On Jan 17, 2007, at 10:51 PM, chromatic wrote:
> > Indeed, it would have been nice if someone who actually understood
> > OO had looked at the documentation for Perl 5 sometime between perhaps
> > 1994 and 2004.
> <funny>It would be yet another software engineer killed by heart
> attack... </funny>
> You're suggestiong that someone needs to review those documents,
> or that someone should explain me (a programmer that just believes in
> OO, but don't actually understands it) how its supposed to work?
>From 1994 to 2004, the object orientation documentation (especially of the
UNIVERSAL base class) had, at best, a passing familiarity with OO concepts
such as Liskov substitutability, polymorphism, and inheritance. I'm not even
that pleased with its understanding of methods, for goodness sake, and it's a
real trick to have a working object system without passing messages.
1) Why does ref() even exist on objects? Where was Scalar::Util::blessed()
for so many years?
2) Why do so few people believe that you can, or should, override isa() and
3) Where was DOES()? (Okay, now this one is a nitpick.)
4) Who was the first person to recommend the use of UNIVERSAL::can() or
UNIVERSAL::isa() as a function, and does that person believe that passing
structs as the first parameter of C functions gives you Smalltalk-quality OO?
5) Has the documentation heard of a consistent, publishable interface? How
about separation of interface from implementation? (Some people still
believe that can() and AUTOLOAD() are incompatible. There's your answer.)
6) Did no one really notice that SUPER::some_method just plain doesn't work
like you might think a dynamic language should work? (Hey, Smalltalk is all
about the namespace in which you call a method. It's like a scary tattoo.)
7) Don't even get me started on the "It's a function! No, it's a method!"
mess of CGI.pm.
8) Look, the keys of my blessed hash overlap between parent and child!
9) Global variables @ISA fun!!!
More information about the london.pm