Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Sanity Check: Roles vs. Traits

by dragonchild (Archbishop)
on Oct 31, 2008 at 15:53 UTC ( #720720=note: print w/replies, xml ) Need Help??

in reply to Sanity Check: Roles vs. Traits

Perl6::Roles is not up-to-date vis-a-vis anything. I wrote it solely as a reference implementation for tbunce when he was looking at roles for DBI2. It was used as a reference implementation (along with Class::Trait, Class::Role, and all the others) when stvn wrote Moose::Role. That should be considered the most up-to-date implementation of anything OOP-related in Perl, both Perl5 and Perl6-in-Perl5.

My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

Replies are listed 'Best First'.
Re^2: Sanity Check: Roles vs. Traits
by TGI (Parson) on Oct 31, 2008 at 17:36 UTC

    If this is the case, please, please, please patch the POD for the module to clearly state it.

    Another example of this is modules by TheDamian. Damian Conway has written some truly useful modules, but every time I consider using one of his works, I get a bit nervous and wonder "Is it safe to use this?". I refer to Categorized Damian Modules, but it isn't kept up to date. If he labeled each module in its documentation as to category, life would be much simpler.

    I am thrilled when I am evaluating a list of CPAN modules and one of them says, "This module is deprecated. Use BLAH BLAH BLAH instead." It saves me the time of having to carefully consider it.

    TGI says moo

      Sorry to be a bit harsh, but the '0.01' along with the last-upload date of 3 years ago should have given you a clue. Alternately, you could've just emailed me at and asked. I would've been delighted to respond and I do so with 24h (often much less).

      As for updating the POD, I wrote it 3 years ago and promptly forgot about it. This is the first time anyone's ever looked at it for production use, so I am a bit surprised at the . . . vehemence. :-)

      Please send me an email and I'll try to get to it next week.

      My criteria for good software:
      1. Does it work?
      2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

        I'm sorry if I sounded harsh or rude. It was not intentional. I understand that CPAN modules are made and supported on a volunteer basis, and that finding time and attention for them can be difficult, even at the best of times.

        Actually, I've never considered Perl6::Roles for production use. Any module author who feels that a module they submitted is "a toy" or "not fit for production" or "obsolete" would do a huge service to the Perl community by documenting this in the module's POD.

        My vehemence was related to the amount of time I have spent wading through too many choices on CPAN, trying to select a good contender.

        This all really comes back to the "too many choices on CPAN" problem that has already been well chewed elsewhere. Breifly, there are so many modules on CPAN that it can be hard to choose a tool. We need to make it easy for people to distinguish what modules to use. CPAN ratings, AnnoCPAN are an attempt to address this problem. I've seen suggestions that CPAN be regulated and only certain modules be allowed on. I won't advocate restricting CPAN or even removing modules that maintainers consider obsolete or dead. I think its better if they persist, that way someone else can learn from them, adopt them or adapt them to meet their needs. A module, created as a toy to test an idea and then abandoned, may be taken up by someone else and be transformed from toy into masterpiece. If we remove "obsolete" or "dead" modules from CPAN, we prevent this from happening. The problem is that you can accumulate a pretty big pile of cruft. The best way that I know of to deal with the cruft is explicit labeling.

        I should really take the time to formulate a clear meditation on this subject.

        I didn't mean for my comment to seem like a raging rant aimed solely at you (or TheDamian). Your post just triggered an epiphany about one of the ways that our beloved CPAN sucks and perhaps a simple way to make it a bit better.

        TGI says moo

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://720720]
[ambrus]: And if you need a syntax highlighter to color parenthesis green and numbers black and letters blue, then you're using the wrong font.
[ambrus]: I have to tolerate syntax highlighters when other people use them, but I don't use them myself. And sorry for the rant.
[GotToBTru]: I appreciate the ability to highlight matching brackets/ parentheses/ braces, both for my own code and the inconsistently indented code of others
[Corion]: I like editors that automatically highlight the matching parenthesis (like % in vi), but that's roughly the extent to which I like editor support ;)
[GotToBTru]: same here Corion.
[Corion]: I tried for a short time (well, 8 hours now) to get Perl::Tidy set up but then found that it doesn't support (new-style) signatures and then stopped again ;))

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (12)
As of 2017-02-27 12:47 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (385 votes). Check out past polls.