Home > Main > The CPAN’s new clothes

The CPAN’s new clothes

I must admit, I’m a bit underwhelmed by Enlightened Perl’s Iron Man competition. They’ve essentially replaced Planet Perl because every blogger from the Planet now also gets syndicated to the Iron Man (could you please work together guys and kill one of the planets?) However, the blog posts’ medium quality hasn’t changed at all — and neither have the subjects. It’s still the same: some “aren’t you using Perl 6 already? 10 reasons why you should!”, some “all hail Moose!”, some “new Padre released, it’s just as powerful as Emacs, but only for Perl stuff”, and also some “Did you know CPAN rocked?” That last bit of sensationalism is getting on my nerves.

Yes, I know, CPAN is great. I even agree. CPAN is great because of the sheer amount of data collected. But it’s a complete disaster otherwise. I might be a bloody newbie in Perl world, but everytime I’m confronted with CPAN, I’m lost and confused — and there is a major flaw in CPAN causing that feeling: every module in CPAN is essentially an open-source project, but nothing at CPAN works under this assumption. It’s full of closed down silos.

Let’s start with a simple example: toying with CPANPLUS::Dist::RPM (or maybe it’s this link, who knows which is the canonical one) at work I’ve noticed it hangs sometimes, consuming 100% of CPU essentially doing nothing worthy. Let’s now assume I’d like to investigate this problem, but I don’t know if this is a bug or a mistake on my side.

So I go to the CPAN page of the package. Oh, there is a discussion forum, let’s click on that! Too bad, it’s broken. Bug reports? Oh yeah, there are whole three of them — none of which is my problem as far I can see. And I can actually barely see, since the visual component of that bug tracker makes Bugzilla of 1998 look good. But I still not sure that’s a bug, so I wouldn’t file one. What’s next? Maybe there is something new and relevant in development code in the revision control system? Oh wait, there isn’t any. CVS, SVN, Git, Mercurial, anything? Nope, no such thing on CPAN. Only release tarballs and some weird release differ tool. No revision control for an open source hosting in 2009, am I looking right?! Only way to ask something is to ask the author per e-mail? What about collaboration, patches, interactive community process for single modules?

Dear Github guys, if you happen to read this, please host the CPAN for us! Revision control, bug tracking, code review, documentation parser — if you could add some discussion forums, you’d be a perfect CPAN hoster!

So CPAN is so far: EPIC FAIL in discussion forums, somewhat FAIL in bug reports, EPIC FAIL in encouraging open development. Those are basic open source functionality nowadays, you know. And those are not nearly scratching the surface of critisicm.

Every other page on CPAN is different in design and interaction, there is no common and consice web interface, many different docs/search/rating mirrors which ultimatively produce a lot of Google spam. An awesome lot of cruft, a lot of broken modules which pop up prominently as first search result, no clear indication if a module is abandoned or actively developed. Even the most potentially useful features like dependencies’ resolution are crippled — dependencies work only in one direction, whenever I’d like to know how people actually use some module, I’m lost again. This is CPAN of today, confusing and rusty. CPAN is naked and it seems nobody wants to point that out. I do not want to think that nobody actually notices.

The situation with CPAN is symptomatic for the whole Perl community. Whether it’s Perl.com, Perl.org, Perl Mongers site, Perl Monks, use Perl or CPAN, it’s always the same: unreadable and misaligned content, incomprehensive navigation and straining colors, self-representation on the web coming straight from 1999 1. All the good code in the world and the power of the language won’t help anyone as long as people are alienated by ugly tools, visually and technically. Why can’t CPAN have the visual docs design from http://perldoc.perl.org, which at least features a syntax highlighter? Some CPAN mirror I land on every now and then from Google is even uglier than the one at http://search.cpan.org. Do we care at all about how those sites look? Do we care about fellow Perlers, about how hard they have to look for information? Why isn’t there some central site for Perl information? Why is every Perl project so independant that things like Perl Iron Man happen without cooperation with Planet Perl? 2

Perl community has so many possibilities but most of them stay unused. Most people are probably content with what they have and wouldn’t want to change anything. It’s fine, Perl’s way certainly supports that, but then we can forget about Perl revival. It’d be a shame, but we’d have only us to blame, not some superstitions about Perl being a “write-only language” or “ASCII soup”. The first impression counts and many newbies might not make it to the code at all — they’ll struggle with finding tutorials first. They won’t find out why Perl is great and will leave for other, probably inferior, languages, because they’ll be reading some ugly outdated quickstart documentation from 1997. They won’t find the shiny things, but they should be able to — as their first Google search result.

  1. Let’s not forget the sheer number of sites a Perler might need to visit to get all the information
  2. Actually there is an easy explanation: at CPAN, if you have a proposal or a patch, you can’t actually do anything more useful than fork and upload your own package to CPAN. Same goes for Planets — open-source type cooperation seems mostly unknown to Perl 5 community. This changes with Perl 6, but it needs to change for Perl 5 too.
Tags: , ,
  1. May 13th, 2009 at 07:39 | #1

    Lovely rant.

    Now, where are your contributions to fix these things? Where are the patches and the offers of help and the examples of how any one of these moans should really look like? You’re just joining the ranks here (at least in this article) by moaning and not contributing. That’s what everyone* does, which is why nothing gets done.

    As for the parting shot “öen-source type cooperation seems mostly unknown to Perl 5 community” .. couldn’t disagree more, since I’m on the irc channels/teams of a fair number of perl 5 modules, and we’re quite happy to accept new contributors, patches etc.

    Including, by the way, the ironman planet. If you want to come offer help to fix up any niggles you see with that, get in touch! (It’s a Plagger btw, which is on CPAN, Github etc)


  2. May 13th, 2009 at 17:54 | #2

    This sentiment is being echo’d a lot lately. You seem to have the know-how. I vote for you to get in touch with TPF and make it happen.

  3. May 13th, 2009 at 18:43 | #3

    You have a fundamental error. All the features you talk about are outsourced. CPAN only has the modules, RT, Forum, Search, etc eveything else is maintained by separate people. And since search.cpan.org is the de facto standard, you can see that some modules have a repository listed in their page: http://search.cpan.org/~mschwern/Test-Simple-0.86/

    > Dear Github guys, if you happen to read this, please host the CPAN for us

    Yeah this may help but I don’t prefer git for my own projects. I only use it for gists and to contribute to other projects not to host mine. I prefer Hg for this. You know, RT is the standard bug tracker but some people (like Schwern) does not use it and use something else instead and the link is given in the module page. My point is, not everyone likes the defaults so there is no point in dragging github (for example) into the process. Tim Toady told me that :)

    And I think that the Forum/Annotated CPAN etc is not a huge success because they work like the standard forums which is a fading technology IMHO. If PerlMonks did not exist and we wanted to start it today it will be another failure. It works today because it already has a community.

    But you’re right as a whole. We need a more standardised interface to CPAN.

  4. Fedov
    May 13th, 2009 at 18:50 | #4

    Although it is true, that complaining doesn’t solve the issue: I couldn’t agree more with this complaint. http://www.perl.com/ needs to become the central point of information for Perl, with links to everything important, and not an unmaintained subpage of O’Reilly. And I believe that a standard graphical tool for interacting with the cpan should be available for windows, mac and the important linux distros - this would really ease the use of cpan for newcomers!

  5. May 13th, 2009 at 19:02 | #5

    There is a mailing list dedicated to the task of rethinking CPAN: http://groups.google.com/group/rethinking-cpan . It’s been quiet for some time - but at least you could find more people with similar sentiments there. As Jess noted above there is no need to convince people - the only problem is how to organize and start the work.

  6. May 13th, 2009 at 19:51 | #6
    However, the blog posts’ medium quality hasn’t changed at all — and neither have the subjects.

    I disagree with this entirely. Perhaps you were not reading too closely previously. Take a look at two related posts from my pre-ironman and my post-ironman blogs:

    pre: http://use.perl.org/~sartak/journal/38309 post: http://sartak.blogspot.com/2009/05/parameterized-roles.html

    The former has very little actual content, just the syntax. The latter is a lot more worthy of reading. This kind of improvement has happened for a lot of the Perl writers whose blogs I read.

  7. name
    May 15th, 2009 at 04:20 | #7

    In addition to Planet Perl, you forgot Perlsphere, Use.Perl, and Andy Lester’s web fappery in your description of this sad passive-aggressive internet slap-fight. And you are forbidden from mentioning The Editor except by using the mandatory SEO phrase “Padre comma the Perl IDE” with a link to its home page. I hope these modern/enlightened/whatever Perl people are making money from making fools of themselves…

  8. meme
    May 15th, 2009 at 18:28 | #8

    CPAN isn’t FAIL. Compare cpan to rubygems and then rethink what you have said. Just look at search.cpan.org: RT, Forums, etc. In my opinion it’s enough. Many people use github, but many use something else, like bitbucket and others. Forcing people to use the only right thing (git) would do more wrong than good. However, github/bitbucket - cpan integration is welcomed.

  9. frankg
    May 17th, 2009 at 17:22 | #9

    I like this blog post because it keeps the problem on the forefront, instead of something that is forgotten about. I would not mind seeing a continuing series:

    “The status of CPAN — How the best is getting better”

    I think we need more devil’s advocate type bloggers. There are many people writing great CPAN modules and others wondering what should be written next. It would be nice to have a voting system that would show what perl modules perl users want most.

    One last note… Please keep the blog post positive. Nobody likes a whiner. I think the information is great but put a positive spin on it, like:

    “The top ten perl issues that will make perl even greater than it is already.”

    just my 2 cents.

  10. govi
    May 18th, 2009 at 23:48 | #10

    Following up on the comparison of CPAN with Ruby gems, it seems that CPAN has much broader and deeper support. However, from the little I have seen, gem supports installing a specific version of a module while CPAN only works with the most recent upload of a module. Is that hard to fix?

    I agree also that CPAN and many perl sites are pretty darn ugly and in very out-dated style — kinda makes it look like Perl isn’t very good for the web, or best at producing an antique look. “Modern Perl” and “Ironman” sites seem to be turning things around and it gives this newbie inspiration to stick with Perl. Planet Perl is yet another hideous perl site. Long live Plane Perl Iron Man!

  11. lwsitu
    May 25th, 2009 at 17:27 | #11

    @govi You can use “cpan> install D/DR/DROLSKY/DateTime-0.49.tar.gz” to install a specific version

  12. June 4th, 2013 at 06:10 | #12

    Hello this is kind of of off topic but I was wanting to know if blogs use WYSIWYG editors or if you have to manually code with HTML. I’m starting a blog soon but have no coding expertise so I wanted to get guidance from someone with experience. Any help would be greatly appreciated!

  13. November 27th, 2013 at 14:10 | #13

    Hi would you mind letting me know which webhost you’re utilizing? I’ve loaded your blog in 3 completely different internet browsers and I must say this blog loads a lot faster then most. Can you suggest a good internet hosting provider at a reasonable price? Thanks, I appreciate it!

  1. No trackbacks yet.