Randy W. Sims wrote:
Yep, that's ridiculous. I used to see these questions a lot back when I
was answering mails on the beginner groups. People wanting to do things
that have already been done and widely tested, but everyone wants to
write their own in order to "reduce dependencies".
Reinventing the wheel is a good learning exercise, but after that it is
a waste of time. At the same time they don't want to require their users
to download 50 modules to use their application, so reducing
dependencies is good to some extent. There is no clear line though,
about how many dependencies are too many and which are trivial.
Different applications of various sizes and complexities will have
different boundaries. Authors have to balance convenience to themselves
and to their users, leaning more toward users of course.
Dependencies also increase maintenance complexity. Since most module
authors are contributing as volunteers, minimizing maintenance demands
is an important consideration. "Core" modules have the advantage of
extensive testing and scrutiny. If I find Whizz::Bang that meets my
needs, I may not want to use it if I'm not sure that (a) it's well
tested or (b) it's well maintained.
There are situations where I may prefer to reimplement something, even
if I might create a new buggy implementation, so as not to make the
quality and maintainability of my code dependent on something I'm not
confident in. At the least, I know that I'll be responsive to my own
bugs -- which, judging from the length of some bug reports on RT, isn't
always the case for Whizz::Bang.
This underlying behavior is one of my biggest pet peeves with the perl
community. Too many people want to go out and write their own version of
modules instead of contributing to the work others began. Diversity is a
I suspect that many of these are API driven. Programming should be fun
and using an API that doesn't "fit" isn't fun. As a result people go
write their own stuff that they feel is easier/faster to use. This is
the flip side of impatience and hubris. E.g. CPAN search found 510
"Simple", 82 "Easy" and 80 "Fast" modules -- not to mention the 49
"Getopt" modules. I don't think that sort of thing is going to change.
David
- Re: Module requirements David Golden
-