The Ultimate Software Repository

What's the ultimate repository for supporting a program?

What sort of a repository?

What sort of a repository are we talking about here? I'm not talking about something like the Debian/Redhat repositories that support an operating system distribution. Neither am I talking about a generic software repository. I'm talking about a central repository for a programming language. The best example would be what CPAN is to Perl.

What is CPAN lacking?

The things CPAN is lacking are:
  • Programming language generalisation
  • Programmer infrastructure support
  • Packaging system friendliness

Programming Language Generalisation

This is really dependant on the programming language. However, as I suggested in the Language Goal section of The Ultimate Programming Language, when Parrot eventuates, if languages are migrated to it, we could have a central repository of libraries in a variety of languages, all of which can be called from the Parrot-based languages. The new repository would have to support libraries in all of these languages.

Programmer Infrastructure Support

CPAN has some support for programmers, but nothing like Sourceforge has. CPAN should either adopt the Sourceforge software (or something like it), and modify it so that it also supports the features CPAN needs, or should make those modifications, but then talk to Sourceforge about integrating CPAN and Sourceforge into the one website. Hmm. That could be really cool :).

Packaging System Friendliness

At the moment, CPAN (the software) is not very useable with packaging systems such as RPM and DEB. It's left up to software such as cpan2rpm to bridge the gap. Fixing this really requires changes to both packaging software and the repository software.