http://www.perlmonks.org?node_id=162449

This post is a sacrilege. :-)

CPAN at this time contain ~3000 modules. If you search CPAN for something and you don't know exact module name and just search by category and keywords - your chances to find the best of existing solutions are near ZERO! As merlyn wrote some time ago - at CPAN we can found 37 modules only for CGI/HTML templates!

Comparation of some modules doing ~identical things sometimes exists in special tutorials or reviews, but you must find these reviews first and most of these reviews in fact incomplete and/or obsolette and explain only one (author) opinion.

I think that CPAN structure must be redesigned (I have no idea about how this can be done now) or at least powered with new indexes.

In last 5 hours I realize one idea about such indexes: Modules Popularity Index. As popularity criteria I take how much results will be found by Google for query:
perl module MODULE::NAME::HERE
.
I'm parse http://www.cpan.org/modules/01modules.index.html and then run ~3000 queries on Google. You can see this popularity report (searchable) here.

I think what indexing algorithm must be strongly improved to make this index really usable, but now it interesting too.

Any ideas/comments about CPAN improvement?

Replies are listed 'Best First'.
Re: Is CPAN usable now?
by samtregar (Abbot) on Apr 27, 2002 at 04:17 UTC
    Like you I once thought a ranking system for CPAN modules was a great idea. Then I read the CPAN FAQ where this idea is addressed by referencing this article. After that I was cured. Maybe you will be too?

    As far as whether CPAN is rendered less useful by a proliferation of modules providing similar functionality... My opinion is that this is a strength not a weakness. Imagine a CPAN where there was no competition for the solution to a particular problem. Would the one module be the best module? Or would it meerly be decent?

    In particular, I think you have to ask why there are so many CGI/Templating modules? My answer is simply that this is a hard problem without a really good general solution. For the same reason, why does DBI have almost no competition? Because it is a really good general solution. Maybe someday CGI/Templating will have a DBI and all the rest will disappear, or maybe not. But just saying that having 30+ modules is bad doesn't get us closer. Neither would everyone voting for the current top 5 and acting to prevent a possible DBI-level solution from gaining users.

    -sam

    Update: Whoops! I took this serriously! Looking at your popularity list I see it must have been a joke. "Unicode" is the most poplular module followed by "HTML" and "User"! Hah!

      I also feel like CPAN needs a user interface improvement and I've also read the articles that Sam references. I would still like to see a ratings and comment system added to the site.

      When I have to dig through a lot of similar options, I'm wondering "but which modules are other people using, and why?". A ratings and comment system would answer that question for me. I think this model has been established through sites like Amazon.com, Slashdot.org, and PerlMonks.org. The comments are important in addition to just having ratings, because the comments explain _why_ a module is rated highly. Maybe a module is rated highly, but for reasons I dislike. I could also take into account that a module that's rated highly from a pool of 4 people is not as meaningful as a module that's rated highly be 40 people.

      -mark

        I honestly see no benefit in any sort of ratings system. The code is free and easy to peruse. If it is not easy, and lacks documentation, throw it away and try another module with similar functionality if available. Rinse. Repeat.

        Other than that, I would say in order the important attributes for choosing a module are:

      • It does what you want (duh)
      • You like it
      • It isn't overboard for the job
      • You've heard of it / Other people like it
      • --
        perl -pew "s/\b;([mnst])/'$1/g"

Re: Is CPAN usable now?
by tstock (Curate) on Apr 27, 2002 at 05:16 UTC
    Most Often Mentioned Modules is kind of relevant, and a good link to have.

    now to burn some XPs...

    I also think CPAN has "outgrown" some of its utility, by being this badly organized. It is still the place to fetch modules from, and gives the module some credibility, but less and less the place to look for existing modules since searching by functionality is hard. I normally search first perlmonks for the functionality/module name, then google for articles or information, and last, http://search.cpan.org if I still havent found what I was looking for.

    tstock
Re: Is CPAN usable now?
by davorg (Chancellor) on Apr 27, 2002 at 11:36 UTC

    This is a topic that had a lot of discussion at various Perl conferences last year. In particular, you might be interested in CPANTS which is Michael Schwern's idea to build an automated CPAN Testing Service.

    --
    <http://www.dave.org.uk>

    "The first rule of Perl club is you do not talk about Perl club."
    -- Chip Salzenberg

Re: Is CPAN usable now?
by belg4mit (Prior) on Apr 27, 2002 at 05:07 UTC
    Multiple wheels (white-wall, street slicks, nobby), ISA Good Thing. An ad hoc name space is not. I have often longed for a bit more sense in the CPAN namespace, but I'd still rather have it in it's current form vs. the totalitarian schemes used in some other languages.

    You best bet in finding modules is either to familiarize yourself with CPAN at some point and keep tabs on it, or use either http://search.cpan.org or http://kobesearch.cpan.org. Google should be a last resort, only in hopes of finding a module which does not live on CPAN.

    --
    perl -pew "s/\b;([mnst])/'$1/g"

Re: Is CPAN usable now?
by Steve_p (Priest) on Apr 27, 2002 at 05:15 UTC
    I have two main suggestions. I think the first thing that should be done is finding homes for abandoned modules. There are several modules with little or no recent revisions on them. While I'd like to think that the packages are perfect already, my guess is that many times, that just isn't the case.

    Second, and I believe that this has been mentioned here before, is that it would be nice if there were some sort of rating system for the optionally packages. Are the moduless full of bugs or are they the best thing since sliced bread. For some modules, its hard to say.
      There are several modules with little or no recent revisions on them. While I'd like to think that the packages are perfect already, my guess is that many times, that just isn't the case.

      I don't know how to say this politely, so I'll just say it: hogwash. Many of my (and I assume others) modules have reached stability naturally. HTML::Pager hasn't be touched in over a year but I use it all the time. Judging a module by the date on the label is just plain bogus.

      Now, that said, some modules are basically unmaintained. There should be some way to register this fact publicly and allow either a) a new maintainer to step in or b) to have the module removed from CPAN.

      -sam

        Perhaps some sort of options added to the search (based on last maintenance date and download numbers) would be a handy thing?

        -----------------------
        You are what you think.
CPAN: Answer 2 All
by powerman (Friar) on Apr 27, 2002 at 11:13 UTC
    2samtregar: No, this isn't a joke. But, you really really think that I can wrote usable CPAN index in 5 hours?? Thanx a lot!

    2belg2mit: "...throw it away and try another module..." - I'm start this thread after I waste many hours just to "throw away" 20 from 22 DBIx::* modules!!! The only 2 is left: DBIx::Recordset and DBIx::Profile. And even these modules don't fit my needs, but these modules are COOL and MAY be used in future. Think about other 20...
    And I 100% agree with ...I'd still rather have it in it's current form vs. the totalitarian schemes used in some other languages.... But this is about all modules in one place and anyone can add new module, not about easy to use.

    2tstock: YES! This is EXACTLY that I think about CPAN!
    I think that using pages like Most Often Mentioned Modules as master source for rating and search engines like google as slave can help us create really usable popularity index.

    But! Popularity index is not exactly that can make CPAN much more usable! I think only some sort of global bugtracking system, forums, voting, etc. can do it! But this must be done on www.cpan.org, not at www.asdfgroup.com...

    So, the only thing I can do right now - popularity/etc reports/indexes. I have some free time right now, so if you send to me comments/ideas about this, links to pages like Most Often Mentioned Modules, etc. I will try to create usable index/report.
    My email: powerman at sky. net. ua.
    I'm not sure how about posting these links/ideas here, but if you think that better to post here instead of using my email - feel free to do it! ;-)

Re: Is CPAN usable now?
by Dr. Mu (Hermit) on Apr 28, 2002 at 03:40 UTC
    Re-indexing CPAN would be a waste of time, I think. If I'm looking for a module to perform a certain function, I'll just type perl module function keywords into Google to find any relevant module names, then go to CPAN to find the modules. Google does its bit very well, so why reinvent the wheel? (Besides, sometimes the module Google finds for me isn't even on CPAN.)
Re: Is CPAN usable now?
by ignatz (Vicar) on Apr 28, 2002 at 15:25 UTC
    I appreciate all the good comments that have come from this thread but I don't buy its premise that the CPAN is unusable.

    Learning to use the CPAN is one of the key aspects of becoming a good Perl programmer. There is no tool in the world that is going to automate people doing their homework. That means reading articles and books; getting to know contributors that you trust (and in some cases fear); looking at their homepages; playing with the examples they provide and creating some of your own.

    ()-()
     \"/
      `                                                     
    
Re: Is CPAN usable now?
by BUU (Prior) on Apr 27, 2002 at 20:34 UTC
    I dont particurally see anything wrong with a comment system of some sort. All the point in the article about popularity were decent points, like someone else just mentioned, you search for dbi or what not, you get 20 modules, how are you supposed to know which ones good? Which ones bad? Which one has a nasty memory leak you wont notice untill you put it into production?
(kudra: cpan testers) Re: Is CPAN usable now?
by kudra (Vicar) on Apr 30, 2002 at 11:25 UTC
    Although this does not directly relate to your desire for subjective information on module quality, you may wish to look at CPAN testers if you haven't already done so.

    This should, in most cases, be able to provide you with the information on whether or not a module passes its tests on your platform. Naturally this tells you nothing about how nice the interface is, how well the module gets the job done, or if the tests are well-written. But it can be a starting point in determining whether to use a module or not.

    And, if you're serious about making CPAN a better place, you could do worse than joining the testing effort.

    On a side note, the recent 0.032 release of CPANPLUS (seen on perlmonks here) includes a plug-in for seeing and sending test results. An article about these features should be appearing on perl.com real soon now. Update: the article.