Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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.

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

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top