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"?