On CPAN Namespaces
CPAN is awesome; many have said that it is Perl’s killer app. It has tons of modules to do many many things. The problem is that some of the obvious names are gone. Certain namespaces have implications. For
Tie::Select I thought of
IO::Select, which exists. I thought of going underneath an existing module’s namespace, for example
IO::Handle::Select, but this implies, at least to me, that it is either a part of, or derivative of
IO::Handle. Its not, and in fact it isn’t even OO as that module is.
I have settled on the current name for now, but I am not totally happy with it. I got to thinking about other naming problems I’ve had. (And note I am not complaining about any of this, just ruminating):
Duke Leto’s SWIGing of the GSL library effectively took up the entire
Math::GSLx::ODEIV2needed that little x to “clear things up”
One might expect that my
MooseX::Types, but it doesn’t. Perhaps it should, or perhaps it should be in another namespace. Then again, this is the descriptive one.
It seems like there are more that I am forgetting
Anyway, it begs the question, as CPAN continues to mature, what happens as the namespaces fill up? What happens to old dead modules Tie::CSV_File which aren’t really worth fixing, but will decrease the searching signal-to-noise?
Gasp! What happens when
ACME:: fills up!
I know that some people’s answer will be to adopt the old modules. But what if I don’t plan to keep the API or the implementation. What if the functionality is different but the names should be similar (my
I know I’m rambling a bit now and I can’t say that I know what I want, but I know what I don’t want. I don’t want new CPAN modules to have to start picking odd names just to have their own namespaces. I’m sure many of us have see Miyagawa’s module’s funny names and their reasoning.
But there just aren’t enough descriptive names.