CPAN is awesome - it's "the killer feature for Perl". And you know who we've got to thank for that? Us! CPAN is a rambling random hodge-podge of code; dozens of duplicates; variable quality of code, documentation, test coverage and run-time performance. And d'you know who's to blame? Us!
When my partner was expecting our son, a good friend of ours said something that has really stuck with us:
"You get the children you're prepared to put up with."
— Hayley Lever
And I'm realising that this is true of most areas of your life. Some things you let slide (put up with); things you're not prepared to put up with, you do something about. In his keynote, GENEHACK talked about we get the Perl community we're prepared to put up with.
Similarly: we get the CPAN we're prepared to put up with.
What is CPAN, and what is it for?
You may argue that CPAN is all, some, or none of those things. But whatever you think, CPAN is as good as it is because most CPAN authors do a lot more than they strictly need to, to solve their own problem. Because they care, and they want to give back.
But it's more than that. CPAN isn't some system made by "them", which we contribute to. It's made by us, for us, and it can be whatever we want it to be.
I think one of the problems facing CPAN is that different people want it to be different things, and effectively end up pulling it in different directions. We have all these great systems and services built around CPAN, but they're not quite a harmonious whole. GENEHACK referred to our "patchwork legacy" in his keynote.
We don't have a shared vision for what we want CPAN to be, but I think it's time we did. It doesn't have to be just one of those things above. I'm intentionally not trying to address that here, but to ask some questions that we all might think about on CPAN Day.
What do you want CPAN to be? What CPAN are you prepared to put up with?
Thanks to BOOK, XSAWYERX, and GENEHACK, for their feedback on versions of this post.comments powered by Disqus