[Distutils] Python people want CPAN and how the latter came about

David Lyon david.lyon at preisshare.net
Sun Dec 20 23:42:50 CET 2009

Hi Steffen,

On Sun, 20 Dec 2009 15:21:04 +0000 (UTC), Steffen Mueller
<smueller at cpan.org> wrote:
> It'll be no secret to anyone reading this that there has been a lot of
> discussion recently about a CPAN equivalent for Python, sparked by
> Guido's "People want CPAN" post to the python-distutils-devel list.

Yes Guido says it's a good idea. Users say it's a good idea, but not
everybody else shares that view.. it's a hard ask..

> I'm from the Perl crowd[1] and would simply like to share my
> late comer's view of how the CPAN came about. 

Sure it is interesting.

> My thesis is that the huge success of the CPAN has been facilitated by
> two factors[2]. The first is simplicity. 

Totally true. That's what python-insiders find it difficult to grasp.

> When Jarkko Hietaniemi
> originally came up with it, the CPAN was (and mostly still is) just an
> FTP archive with a by-author directory structure that is mirrored many
> times. Everything else is built on this flexible foundation and has
> grown over time. 

Yes. Pypi is not so dissimilar.

The difference is that while CPAN kept its simplicity, python on it's
growth phase has taken cheese-shop, added sloppy noodles, and evolved
into a bowl of spaghetti.

Not only that, it's a bowl of spaghetti with multiple noodle types
now, setuptools, distribute, pip etc.

> The CPAN specifically does NOT have an official web
> service or any kind of development platform. Apart from the directory
> structure of the CPAN, the only other key ingredient was the "Perl
> Authors Upload SErver" (PAUSE) that handles credentials of the authors,
> permissions for namespaces, and serves as a single entry-point for
> uploads to the CPAN. PAUSE scans incoming distributions for meta
> information and generates in index of modules (namespaces/classes) and
> distributions that is itself distributed via the simple CPAN mechanism.

Pypi has all that too.. as you say..

> Let me repeat: Everything else is just sugar on top. 

Sugar for CPAN yes. But in the python world we get just ghee as
the sweetener. It just has a different taste.

> Specifically,
> everything else is sugar provided by *third parties*. Andreas König
> wrote and still maintains PAUSE and the CPAN.pm client[3]. Later, Jos
> Boumans set out to write the CPANPLUS client. Graham Barr wrote and
> still maintains the search.cpan.org website. Randy Kobes wrote the
> similar but equally non-official kobesearch.cpan.org. 

It's nice when you have community spirit like that.

> By virtue of the simple design and the (somewhat limited)
> published meta-data in form of the simple module index, everyone had
> the opportunity to write tools that interface with it. 

Another (quite) important contrasting difference in python...

> There was no
> need to "get it all right" from the get-go. Things evolved and we now
> have a best-of-breed. The various services by various people are
> loosely intertwined[5].

There's a different philosophy in python. I think the management style
is more hierarchical.

> There is also very little regulation on what is uploaded to CPAN, but
> curiously little abuse. I think that is because the majority of people
> who are willing to share their work with others free of charge aren't
> the type who'd want to crap on other people's front yard. 

Same with pypi.

> My firm belief is that the second most important factor to the success
> of the CPAN is people. There are some individuals who have managed
> herculean amounts of work and have shown incredible dedication over
> years. But it's the combination of a lot of people's work that is more
> than its sum. 

Exactly. Python development philosophy is much more fragmented. In python
we just have bike-sheds.

It would be good to see leadership pushing people together in a
cohesive way, towards common goals.

> I'd say the core of the CPAN toolchain gang is not that
> large. Depending on where you draw the line, there are maybe 10-50 of
> them. 

That's the ideal size.

> Not all, but many of these people have known each other
> personally for years from attending the many YAPCs and Perl workshops.
> Reading the "People want CPAN" thread, it seemed to me that folks are
> fighting each other quite a bit and not always only on technical
> grounds. 

You got it. 

> On the other hand, it's hard to imagine fighting with somebody
> as friendly and welcoming as, for example, Andreas König. Meeting
> in person helps this tremendously. Discover the common goals and
> agree on the means over a beer. 

I too have been beer drinking with the perl crowd. Such a great
time. Those guys are just so friendly...

> So if anyone was to accept a single concrete suggestion from me, it'd
> be: "Enable the right heads to get together over a beer." 

haha. What a notion...

> It is the bonds between individuals that can make it all work 
> well. The success 
> of the CPAN is due to cultural aspects at least as much as due to its
> design and technical merits. 

While I agree 100%, we're back to the circular argument as to
whether we even want something like cpan. Guido says one thing,
others another, and users something different.

> Please keep in mind that this is only my personal opinion. Thanks for
> reading. I hope this can add some perspective.

Yes but you're close on 100% right on every point as far as I can see.

All you're really saying is that perl developers are happier after
having a beer together. And that this doesn't happen as much in
python. If that's what you're implying, then I would have to say
that its just so true. Python is different.. 


More information about the Distutils-SIG mailing list