Hacker News new | past | comments | ask | show | jobs | submit login

Which reminds me of my favorite one...

If Perl programs (executables, whatever you call them) are called "modules", why is the main place people download them from called CPAN?

It's completely illogical.

C = Comprehensive (It's not, it definitely does not contain all possible modules)

P = Perl (This is only one that makes sense)

A = Archive (If the things people create are called modules - .pm files, really - what makes this an archive? A collection of things? That's a weak leg to stand on. Yes, distributions formalizes this, but modules seems to be the common nomenclature.

N = Network (How is this a network? I think Wall - or later, Hietaniemi - just wanted people to think it was big and important in the early days)

This is all absurd and slightly sarcastic, but I finally got to write it down somewhere :)




CPAN was named after (in imitation of) CTAN, the Comprehensive TeX Archive Network. CTAN was named by George Greenwade — the idea was to bring together (network) various TeX archives that various people had collected. See:

https://www.cpan.org/authors/id/H/HF/HFB/grok-cpan-1.01.pdf (page 3)

https://ctan.org/ctan/?lang=en or http://dante.ctan.org/what_is_ctan.html


Imitation, flattery etc, etc.

As I said before, take this with a dose of sarcasm :)


There are multiple CPAN sites, which rsync from each other in a hierarchical way, so "network" is quite appropriate. And they retain all previous versions, so they're an archive. Also, the intention was for it to contain all published modules, and it has indeed grown to be, I think, the largest repository of modules for any language. Comprehensive does not mean complete.


Comprehensive does not mean "all possible items".

The archive is the collection of archive files which contains a combination of software libraries, documentation, programs, tests, and metadata. It also includes manifests, checksums and other data useful for the CPAN program.

The network is a collection of 250+ mirrors of the archives.


I hate to do this, but...

Well, actually...

https://www.google.com/search?q=comprehensive&ie=UTF-8&oe=UT...

On a more serious note, while I was not aware of how extensively mirrored CPAN is, there is something to be said for it being the canonical source.


Ok, I'll grant you "all" is in the defintion, but so is "nearly all". Comprehensive is often used with a modifier to denote that it doesn't cover all possibilities. It also is applied to subjects that can't include all possibilities, or where they can't reasonably be known. Its root word compréhensif also hints at the subject covering many areas, but not all of them; a thorough understanding.

CPAN covers nearly all Perl libraries, and also covers nearly all categories of modules, as they are organized into a hierarchy based on topic, and the modules' naming naturally falls into a hierarchy as well. It's easy to find a module even without a search engine, and thus easy to find out whether you need to make one or whether one already exists. The result is a comprehensive archive of libraries.


Perl programs are not necessarily modules.

Perl modules can be written to function as programs, a technique known as modulinos[0], but it is not a common approach.

[0]: https://www.masteringperl.org/category/chapters/modulinos/




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: