Hi all!

In regards to the previous discussion about trimming down CPAN and finding 
better ways to find quality modules, I got an idea of making CPAN "category" 
reviews. The idea was originally derived from Freshmeat.net where they often 
have category reviews of the various software hosted there:

http://themes.freshmeat.net/articles/section/category%20reviews/

Now I thought of importing that idea for CPAN. What we will do is have a 
certain blog (possibly on perl-buzz or Perlc.com or somewhere else) where 
occasionally someone takes upon himself a certain subject (e.g: templating 
systems, date/time modules, web frameworks, OOP modules or testing modules), 
review all of the modules (if possible) or the main contenders, and reach a 
certain conclusion or recommendation. Often there will be modules for 
orthogonal purposes, or trade-offs (e.g: Template Toolkit vs. Text::Template 
vs. HTML::Template, which have very different philosophies), and they'll need 
to state their pros-and-cons and reach a conclusion.

Naturally, if there are modules that are buggy, unmaintained, not recommended, 
etc. he should note it. Now that I think about it, it may be a good idea to 
also define a machine-readable format (XML etc.) for the conclusions 
(possibly more) so they can be processed by the various CPAN interfaces.

Later on, there could be back-links from search.cpan.org/kobesearch back to 
the appropriate reviews on the category reviews, similar to the fact that 
Freshmeat has "this project was mentioned in this article, etc.".

After the demise and depreciation of the CPAN registered modules list (I can 
no longer find the URL on http://www.cpan.org/ but it was horribly 
out-of-date and misleading anyway), it is acceptable that a better human 
review of the links could be a good idea.

What I suppose is that the category reviews should not be published 
immediately and should be given to peer review by a forum (like a mailing 
list) dedicated for it. While the review itself should only be written by a 
very limited number of people[1], the more people review the article before 
it is published and comment, the better.

So what do you think - is there an interest in this?

I'm attaching here a list of OOP modules I found on CPAN (probably not fully 
encompassing, and any addition will be welcome) which I intended to write a 
category review for on Perl.com. (But from what I understood from my editor 
it was rejected). It's not much, but it's a start.

Regards,

        Shlomi Fish


====================

This is the summary for the article about modules for facilitating
Object Oriented Programming in Perl.

* Accessors:

    * Class::Accessor
        - Class::Accessor::Fast.
        - Class::Accessor::Chained.
        - Class::Accessor::Ref
    * more.
    * http://search.cpan.org/dist/Object-AutoAccessor/
        - Using AUTOLOAD.
    * http://cpan.uwinnipeg.ca/dist/Class-Field
        - by Ingy
    * http://cpan.uwinnipeg.ca/dist/Attribute-Property
        - by Juerd
    * Object-Tiny
        - by Adam Kennedy - extremely minimalistic.

    * Class::Data::Inheritable
        - http://cpan.uwinnipeg.ca/dist/Class-Data-Inheritable
        - Class::Data::Inheritable::Translucent
            - http://cpan.uwinnipeg.ca/dist/Class-Data-Inheritable-Translucent

* Method generators:

    * Class::MethodMaker
    * Class::MakeMethods
    * Class::BuildMethods


* Utility modules:

    * Delegation:
        - http://cpan.uwinnipeg.ca/dist/Class-Delegator
        - Class::Delegate
        - http://cpan.uwinnipeg.ca/dist/Class-Delegation

    * Class::Multimethods.

    * NEXT
    * Class::C3

    * Roles/Traits
        * Class::Trait
        * Class::Roles
        * http://cpan.uwinnipeg.ca/dist/mixin
        * http://cpan.uwinnipeg.ca/dist/Perl6-Roles

    * Introspection:
        * http://search.cpan.org/dist/Class-Inspector/

* Object systems:

    * Moose.
        - Class::MOP
    * Class::Std.

    * Class::Contract
        - http://cpan.uwinnipeg.ca/dist/Class-Contract

    * Prototype-based OO
        - Self, JS, IO
        * Class::Prototyped
            * CGI::Prototype
        * Class::Classless

    * Spiffy
        - Class::Spiffy

* Aspect Oriented Programming.

    * Aspect.pm

* OO Testing.

    * Test::Unit.
    * Test::Class.

* OO Exceptions

    - Error.pm
    - Exception::Class
    - http://search.cpan.org/dist/Class-Throwable/



---------------------------------------------------------------------
Shlomi Fish      [EMAIL PROTECTED]
Homepage:        http://www.shlomifish.org/

I'm not an actor - I just play one on T.V.

Reply via email to