[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#231417: ITP: libclass-prototyped-perl -- Fast prototype-based OO programming in Perl



Stephen Quinney writes:

>   Description     : Fast prototype-based OO programming in Perl
>
>  This package provides for efficient and simple prototype-based 
>  programming in Perl. You can provide different subroutines for each
>  object, and also have objects inherit their behavior and state from
>  another object.
>  .
>  The structure of an object is inspected and modified through *mirrors*,
>  which are created by calling "reflect" on an object or class that
>  inherits from "Class::Prototyped".
>  .
>  The author says: 'When I reach for "Class::Prototyped", it's generally 
>  because I really need it. When the cleanest way of solving a problem is
>  for the code that uses a module to subclass from it, that is generally
>  a sign that "Class::Prototyped" would be of use. If you find yourself 
>  avoiding the problem by passing anonymous subroutines as parameters
>  to the "new" method, that's another good sign that you should be using 
>  prototype based programming. If you find yourself storing anonymous 
>  subroutines in databases, configuration files, or text files, and then 
>  writing infrastructure to handle calling those anonymous subroutines,
>  that's yet another sign. When you expect the people using your module
>  to want to change the behavior, override subroutines, and so forth,
>  that's a sign'.

I read this long description as similar to saying "This animal looks
like a duck, walks like a duck, and quacks like a duck."  If I am
unfamiliar with ducks, it does not tell me why I would be interested
in buying a duck.

As background context, in my years of programming Perl, I have never
found its prototyping capabilities wanting; I do not presently know
why I would want this package.

More specifically: The first paragraph describes coder-extensible OO,
which is provided by standard Perl.  The second is jargon-heavy but
seems to describe reflection services similar to what is in Perl
already.  For both of these, how or why is it different than standard
Perl?

The third paragraph describes when the author uses his package, but it
does not indicate why the package is particularly useful in those
situations.  It mentions two distinct activities (extending classes at
code-authoring time and serialization of subroutines) without clearly
stating why they are related to each other or to this package.
Although it tells me more about why I might want this package than the
first two paragraphs, I still don't know why I would install it.

Michael



Reply to: