I’ve been thinking a bit lately of the way module distribution is handled in Perl 6. Right now there’s modules.perl6.org. It’s a brilliant start, however I think we need to formalize some aspects of how it works and what’s needed to make the system work. (The results of this formalization of sorts would replace the fossil that is S22 and other relevant parts of the spec.) Here are some of the things I’ve thought so far:
Don’t use CPAN. This is one point I’ll be fighting for the most. There is a commonly perceived split between Perl 6 and Perl 5, one I don’t personally believe will go away any time soon. I think that since there’s a separate perl6.org site for Perl 6, there should be a separate repository for Perl 6 modules. (Remember, I came to Perl learning Perl 6. I have never been a part of Perl 5 and I have always perceived that P6 is different enough from P5 that the are separate branches that should get confused and mix together (e.g., the same website for P6 and P5 is a no-no to me if clarity is a goal). There’s most likely bias here because of this fact.)
P6SSMPR. Yes, it’s that mouthful of an acronym again 🙂 . I really want to provide a central place for all Perl 6 code. (The acronym stands for Perl 6 Snippets, Scripts, Modules, and Programs Repository.) modules.perl6.org is already a great site, so perhaps the idea of P6SSMPR can be applied to modules.perl6.org. Soon (within a day or two, hopefully) I will publish a document describing exactly what I mean when I think of P6SSMPR.
Clearly explain the module system. I’m a fan of betterexplained.com (as well as its other projects, including aha.betterexplained.com for sharing your own ideas and instacalc.com), so I really want to make the spec easy to understand. Of course, first I need to finish with explaining the type hierarchy (er, object inheritance chain?). Then, when I get started on explaining the module system (or whatever other part I want to explain), then I’ll merge the type hierarchy project into a more general spec explanation project. (I’ve even thought of a fourth category of pages, the “Tutorials”, to explain the Synopses, like the Exegeses explain the Apoclypses. But that’s another story.)
Anyway, I think it’s high time some of the higher numbered specs and less worked on parts of Perl 6 need to be fleshed out. Since I like the idea of
messing with formalizing the module system, I figured I start there. And I figured I’d start by starting a discussion of this (at least one that I’ll be around for, apparently). Any ideas?
tl;dr — The universe has reportedly been turned upside down. Investigations are under way to determine why nobody noticed.