Comparing Apples and Oranges - rubygems vs cpan part 2

In part 1 I looked at numbers, now I want to look at uploading and the uploads themselves.

Uploading to rubygems is very simple, I don't know or use ruby, but just from looking at the frontpage I'm pretty confident that it would be pretty quick and easy : 1/2 of the main content of the page is a quickstart guide in 3 simple steps. Neat! (I'm sure there is more to writing a good gem, but that definately leaves you feeling confident to give it a go).

Uploading to cpan via PAUSE is something I do a couple of times a week without really thinking about it, that doesn't mean it's easy, it's pretty much muscle memory after a decade of doing it.

However, from the perspective of somebody outside the "echo chamber" (as I most certainly was when I looked at the rubygems site), it's very different when you arrive at the site.

The CPAN front page is quite nice - it has the latest uploads, helpful links to get started, a searchbox (that takes you to rather than metacpan, it would be nice to point to metacpan instead as that provides so much more, but that's another topic) - a lot of focus on finding and downloading modules. So far so good..

..but what about uploading something to cpan? - those modules had to get there somehow .. nothing about that on the front page of (no mention in the or metacpan sites either, even in the FAQs).

The only mention of uploading to cpan isn't quite "in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying 'Beware of the Leopard'" but it's not exactly highlighted or the first (second, or third, or 7th) thing a user sees - I had to look in the FAQ and found it mentioned 3/4 of the way down a long page, even the mention in the contents was past the fold.

That's very different to rubygems, and it's effective 'call to action'.

The rubygems even has a link to create and upload your first gem on the front page (but not in the call-to-action, bit of a missed opportunity there, but pretty damn good nonetheless). Thats a nice page, too : a quick skim and I'm confident I could knock up and upload a decent ruby gem in no time, despite not knowing any of the tools (of course that excludes the useful ruby code in the gem itself, of course, most ruby users who might upload there don't have that obstacle)

The CPAN FAQ entry links to the venerable "/modules/pause.html" page on cpan (which says "Please allow three weeks for proceeding, which should be the maximum during vacation time. Normally we hope to register you within a week." .. by which time many people will have lost interest or forgotten, certainly not the instant uploads on rubygems) and a page about submitting "scripts" to cpan circa 2002.

well.. that's quite a lot and I haven't even got to the uploading bit yet, don't worry if it looks a bit depressing for cpan so far, it really shines once you get past the old cobwebbed faq pages and actually upload some code. I'll come onto that in part 3.


+1 for "Beware of Leopard" reference.

I do want to point out that despite the 3 week caveat, since I took over PAUSE ID approvals several years ago, I've generally been able to keep approval times under 24 hours (with rare exceptions).

Of course, our manual review process is still a hell of a lot more arduous than rubygems instant sign up process.

I think it reflects a 1990's mindset about controlling uploads to worldwide mirrors and could probably be dispensed with now that bandwidth and storage is less of an issue than it was then.

While I know it is a lot of work for the admins, I think there is a lot of good that comes from the manual add to pause, if only to keep out spam and haters. Still it may serve to keep the quality of modules higher. Thanks for your help PAUSE admins!

I agree that it could be made easier to upload modules.

I think we should strive for higher quality of code on CPAN; rather than on sheer quantity.

So I think we should have a few minor hurdles to jump over before someone can upload their first module. Something to make sure that they know what is expected of module maintainers.

Uploading a module is the easy part. You will also have to deal with bug reports. They should also check that there isn't already a similar module that could be improved, instead of uploading yet another module that does X.

Leave a comment

About hashbangperl

user-pic Geek, Dad, Husband, hacking perl in Cornwall see also my github and linkedin pages