Mark Stosberg wrote:
On Mon, Feb 28, 2005 at 08:57:04AM -0500, Christopher Hicks wrote:I've been thinking for a while that it would be great to have a CPAN wiki for things like:
This is a phenomenal initial cut of a POD. The review of relevant other modules in SEE ALSO and the philisophical differences with each deserves particular note. Bravo.
I share your appreciation.
I agree that this part of the documentation is frequently sub-optimal
from a users perspective, especially when a new alternative appears when they are several standard options.
For example (and not to pick on a particular module), here's one that was just released today:
http://search.cpan.org/~jbuhacoff/Data-SimplePaginator-0.1/lib/Data/SimplePaginator.pm
I was hoping for more of a comparison with Data::Page, which is similar but already established.
Mark
1) articles comparing sets of similarly themed/purposed modules
2) guide to namespaces (if your module ties a list, should it go under Tie:: or List::? both of which are existing namespaces; and what the hell is B, Class, and Devel for? Not always obvious to the new-comer... generally requires becoming familiar with several modules in the namespace, and then the purpose *sometimes* becomes apparent)
3) perhaps even a full directory of all modules, DMOZ style (manually maintained by interested volunteers)
For example, I recently started looking for a module that would simplify file locking for me. I know how to use flock, but sometimes I don't feel like dealing with the technical details - I just want a locked file, and I want it now. (similiar motivation prompted my Parallel::Simple module :) A cpan search turned up:
IO::File::flock ( IO-File-flock-0.10 26 Apr 2004 ) IO::File::flock ( IO-File-Lockable-0.31 16 Jul 2004 ) IO::LockedFile::Flock ( IO-LockedFile-0.23 20 Feb 2003 ) File::Flock ( File-Flock-104.111901 19 Nov 2004 )
What are the differences? Is one more actively maintained? Is one more popular, and therefore better tested? Most importantly... which one do the senior perl guys rely on? If Randal Schwartz and Dave Rolsky use a module regularly and can't imagine living without it, then that's probably the module I should be learning if I want to be a better programming. But without information, a newbie like me is taking a stab in the dark.
I know the cpan has a minimally working ratings/review system, as well as the cpan testers system - both of which are great (testers more than ratings), but that's too limited. The wiki could evolve new conventions and new structures for information faster than the CPAN developers, and allow anyone to contribute with almost no barrier to entry. For a language specifically marketed to lazy programs, this might be a perfect fit.
I enjoyed writing the Parallel::* comparison, and I believe it is useful, but honestly, it doesn't belong in the SEE ALSO section of my module. It belongs someplace neutral, someplace that can be maintained and expanded by the whole community.
Incidentally, I settled on IO::LockedFile. Very simple interface, good for many purposes.
-ofer