Larry Wall wrote:
I think this is an important point, philosophically.  The internet,
and later the web, both succeeded primarily because they unified
identity *without* resorting to centralization (except to bootstrap
the top-level nameservers, of course).  But identity must not be
confused with location.  It's perfectly fine for various repos to
store only a subset of an archive, just as it's perfectly fine for
a node on the internet to only handle a portion of the traffic.
But they get away with this only because of uniform addressing.

Indeed, there is no reason why every CPAN mirror has to hold *all* of CPAN. As long as the actual module-mirror resolution happens transparently, what does it matter?

Following up on the points raised by Mark and Larry, a more distributed CPAN (where each mirror can choose *what* to mirror) could point the way to resolving both of the issues I've mentioned:

1) Mirrors who want to hold Perl but not (say) Ruby.
2) Mirrors who don't want to hold (say) binaries for the Nokia handheld.

If mirrors can choose what parts of the CPAN repository they want to mirror, the above issues go away. If you don't want to mirror binaries in your server, you don't have to. As long as we use some URI/DNS type system, we can locate *some* mirror that has the module we are looking for, and just grab it from there.

Taking the distributed idea further, mirrors could use some kind of P2P system in the style of Bittorrent in order to distribute new modules and updates throughout the CPAN network.

What do you think?

With these changes (letting mirrors choose what they want to mirror) I would guess that the only issues left with CPAN holding Ruby modules is philosophical. Personally I don't feel strongly about the philosophy. I would be quite happy to install a module I can use from Perl 6 even if it was written in Ruby ("Perl on Rails" anybody?).

Btw, if the majority wants to start uploading Ruby, Python and Lua modules to CPAN, we can rename CPAN so that the P stands for something else that doesn't mean anything. "Comprehensive Peacock Archive Network"? "Comprehensive Platypus Archive Network"?


Reply via email to