Hi,<p>I came across this blog post today : http://joose-js.blogspot.com/2009/02/cpan-for-javascript.html<p>He says, "While there have been attempts to create a CPAN (comprehensive module directory) for JavaScript it has failed <i>just as this has failed for pretty much every language but Perl</i>."<p>Is this too broad a statement? Has this really failed in every language but Perl? I know because I tried to build a "Comprehensive Module Directory" for cakePHP and pretty much failed for various reasons (lack of community support, inconsistencies in standards, etc etc)<p>Any thoughts on this? Any published theories on why this is hard? How do you go about starting a directory for your favourite language or framework? Does the answer lie in the fact that frameworks might be the new "module directory"? Am I being stupid? :)
For one thing, there's conflict between using an OS-level packaging system (such as Debian or Ubuntu's package repositories, BSD ports, etc.) and a language-level packaging system, and mixing the two often doesn't work so well.<p>Also, as a language, Perl occupied a somewhat unique niche for a while. It <i>certainly</i> had a head start on other scripting languages, and I think most other languages at the time had issues with portability or multiple implementations that could prevent such a project from achieving escape velocity.<p>While we're just listing things, Lua has LuaRocks (<a href="http://luarocks.org" rel="nofollow">http://luarocks.org</a>), Chicken Scheme has Eggs Unlimited (<a href="http://chicken.wiki.br/chicken-projects/egg-index-4.html" rel="nofollow">http://chicken.wiki.br/chicken-projects/egg-index-4.html</a>), Haskell has hackage (<a href="http://hackage.haskell.org/packages/archive/pkg-list.html" rel="nofollow">http://hackage.haskell.org/packages/archive/pkg-list.html</a>), etc.
Python has PyPI. Ruby has the Gems repository. PHP has PEAR. There's no CPAN equivalent for Javascript, but that's largely because one doesn't generally install Javascript libraries in the same sort of way that one installs Perl modules.
From Jarkko Hietaniemi, the CPAN Master Librarian:<p><a href="http://www.cpan.org/misc/ZCAN.html" rel="nofollow">http://www.cpan.org/misc/ZCAN.html</a>
Saying Rubygems as a CPAN like system has failed is retarded. It's vastly easier to work with than CPAN, and has gems for everything imaginable. The barrier to package up a new gem is almost nil (nearly automatic if you have a github repo).