tags:

views:

276

answers:

4

CPAN is a really helpful resource for Perl.

Why isn't there a CPAN for .NET? Should there be one? Are there other programming or platform technologies that have a CPAN-like infrastructure?


EDIT
No one mentioned this: isn't the Comprehensive base-class library included in .NET one of the key reasons you would NOT expect to see a CPAN-like thing for .NET? I mean, there are Perl libraries for XML, HTTP, Encryption, and so on - but all of these are included in the BCL out-of-the-box. No one needs another FTP library, aside from the one that's built-in.

related: Is there a CPAN for PHP?

+1  A: 

(Updated Revised my snarkiness and tried to explain my position.)

Why isn't there one? Well, here are my guesses.

  1. No one has written one. Ask yourself, why haven't you? I'm sure your reasons are different from my reasons. The fact that no one has done it just shows you that the value proposition isn't big enough. Why isn't it big enough? Well that depends upon an individual's values (your values and mine certainly differ).

    But there's nothing stopping the community. Put up a server. Find all the big vendors. Sign contracts with them. Create and maintain the site. Make ad deals. Hire a site designer to get that Web2 look and feel. If it's successful, then it becomes your job. If it's not popular, then you had better love servicing a vacant community with no remuneration.

  2. It's work. The free languages and frameworks have these types of repositories to promote the core language or framework. But Microsoft promotes .NET. Most components are pay-for, why should I volunteer my time to promote their products? Perhaps to aid in the greater public good?

Frank Krueger
No one has written one. Very perceptive. But why?
Cheeso
Probably because .NET is popular in for "corporate" use, where developers don't know that there's a community, and if they do, the legal team says no to contribution. They also think "free == bad".
jrockway
A: 

I definitely think there should be one - it would save me a lot of hassle with configuration. I'm also from a UNIX background, so it would make my life easier.

There is a package manager for .NET, similar to APT/RPM on Linux, which downloads open-source libraries, but I can't find it.

EDIT: Credit to Erik van Brakel in the comments, said program is Horn.

Lucas Jones
I think you mean Horn: http://code.google.com/p/hornget/
Erik van Brakel
Thanks! I'll justed edit it in now.. :)
Lucas Jones
+7  A: 

Similar: CTAN for TeX and JSAN for JavaScript. JSAN is still in development. Perl community has plans for CPAN for C. Also planned C6AN will have modules in any language that will exist on Parrot VM.

I guess CPAN and related sites had success because they were written in Perl and by Perl community, Perl is really good for such tasks. Also CPAN modules use Perl testing orientation - thats why CPAN modules usually have good quality. CPAN is also a hobby for many Perl programmers and these programmers are very good ones.

Alexandr Ciornii
+3  A: 

By it's very nature, .NET is restricted to one platform, and isn't as tied to Open-Source/Free software as is Perl. As a MicroSoft product, .NET also has major corporate support behind it from the get-go, something that Perl didn't have. CPAN had to be created by volunteers. While .NET support structures can be created by volunteers, so much doesn't need to be. And these pre-existing corporate support structures sap energy that could be used by a bottom-up volunteer community, and at the same-time inhibit it, by suggesting that it isn't needed.

MS is trying to build more grass-roots community support, but it's going to be a long haul effort, if ever successful.

Michael Paulukonis
I think yours are reasonable observations - Perl was created by volunteers, whereas .NET was an effort by a corporation. And the organic, community-driven engineering effort behind Perl naturally leads to something like CPAN, while it doesn't make as much sense in .NET, when Microsoft itself released a pretty comprehensive base class library with the product.
Cheeso
Thanks, Cheeso -- much more concise than my ramblings!
Michael Paulukonis