CPAN is for experimentation and I hope that never changes

This post is a response to Neil Bower's post Don't release experiments to CPAN.

Neil, respectfully, I disagree.

The huge success of CPAN is, I think, in large part because it encouraged experimentation and alternatives.

Suggesting people upload elsewhere (Github) and have module installers use that just creates barriers to participation and barriers to participation are the last thing that Perl needs.

At one time we had the "registered modules" list. That fell out of favor and usage. Why? I think, in part because it couldn't keep up with the pace of innovation on CPAN. (Possibly, because the approvers couldn't keep up or became a bottleneck themselves.)

We have a search problem and a problem finding "recommended" modules. But that's an output issue, not an input issue.

Think about Amazon. They offer the "long tail" of books, but make it easy to find things. Bestseller lists. Recommendations. Reviews.

We should be focusing on helping people find recommended modules. Task::Kensho. Your own excellent review articles.

Suggesting people not upload code because it's not "worthy" is a recipe for disaster.

I'm the acting PAUSE admin for ID approvals (by which I mean I'm the Turing test to make sure applicants are people and not bots or spammers). Every week I see a regular trickle of brand new CPAN authors. I see their ideas when they apply for an account.

Are all ideas brilliant? Are they going to replace some existing module or revolutionize something on their first try? Probably not. But they are contributing. They are motivated by the idea of giving back to the community.

Some of these authors, someday, will start contributing things that do matter.

Telling them not to upload to CPAN until they have something good enough is a terrible idea. Telling them to keep their ideas on other forums until they're good enough is a terrible idea.

If we do that, we might as well just tell them to go away.

This entry was posted in cpan, perl programming and tagged , , , . Bookmark the permalink. Both comments and trackbacks are currently closed.


  1. Seano
    Posted March 8, 2013 at 11:12 pm | Permalink

    They are motivated by the idea of giving back to the community.

    I think you're far too optimistic about human nature. Some are, but many are just selling services, pushing an agenda, seeking attention, or cracking jokes.

    • Posted March 8, 2013 at 11:23 pm | Permalink

      How many PAUSE ID requests have you read in the last year? It's what many people actually say when they apply.

      Or perhaps you just think everyone else is like you?

      • Seano
        Posted March 8, 2013 at 11:57 pm | Permalink

        Um... "oh snap"? I do a bit of each, and it's pretty clear which modules are what -- Acme:: is great that way. I don't read account requests, but I do peruse recent uploads and CPAN ratings when I'm bored.

  2. Posted March 9, 2013 at 3:59 am | Permalink

    David, it's so nice once in a while to get to agree with you on something 100% ;)

    $this_post++ for (1..10000000);

  3. Posted March 9, 2013 at 4:05 am | Permalink

    Uploading a module to github (or elsewhere) instead of CPAN takes away two main things CPAN offers and github doesn't: 1. ability to easily install a module from everywhere; 2. CPAN Testers. I don't know why someone would do this instead of uploading version 0.001_01 to CPAN.
    And yes, CPAN is a mess, we all know it, but definitely not because of experimental modules.

  4. Neil Bowers
    Posted March 9, 2013 at 4:34 am | Permalink

    Suggesting people not upload code because it's not "worthy"

    That's not what I was saying. I'll clarify in my original post (at some point this weekend, when kids allow).

    • Posted March 9, 2013 at 7:25 am | Permalink

      Great! Mine still nap, so I get a mid-day window for stuff. :-)

  5. Posted March 11, 2013 at 1:28 am | Permalink

    "CPAN thrives because of the unfettered uploading of shit, not in spite of it." -- Me, repeatedly, since 2005.

  6. Posted March 11, 2013 at 12:35 pm | Permalink

    I generally agree. CPAN thrives because of attempts, whether successful or not, of doing something of interest to at least one person. Even if that module doesn't work or work well, the fact that it exists can and often inspires people.

    Just because there is a module on CPAN, it doesn't mean you have to use that implementation. Having choice is good here.

  7. Posted March 11, 2013 at 6:45 pm | Permalink

    Sometimes someone's half-baked idea is the best you can find and may give you a good starting point or lead to a fruitful collaboration. We could also do with more comparative review articles like "Which HTML parser module should I use?". Module authors should be encouraged to cross-reference similar modules and explain the differences.

  8. Posted March 12, 2013 at 3:54 pm | Permalink

    Yes, myself I run into perl programmers all the time who are reluctant to upload stuff to CPAN because they don't want to add to the pile unless they've got something super-cool. My take is that there are just enough little hassles with creating a CPAN distro that you're better off going through them when you're working on something minor.