in reply to Module Bloat and the Best Solution

Although people will tell you to always use CPAN, don't turn off your thinking cap. As a good programmer, you want to do as little new work as possible and to minimize as much risk as possible. Since CPAN is a horde of people you don't control, you can save yourself a lot of work, but you also take on a lot of risk (which is not an absolute definition).

Apply those thoughts to using CPAN too. The answers aren't going to be the same for everyone because social constraints and local policy often get in the way. The best thing to do is to have sound technical advice to inform those decisions. As always, whenever someone tells you the One True Answer before they know you're stuation, watch out!

Here's what I recommend to most people:

--
brian d foy <brian@stonehenge.com>
Subscribe to The Perl Review

Replies are listed 'Best First'.
Re^2: Module Bloat and the Best Solution
by educated_foo (Vicar) on Nov 09, 2007 at 04:39 UTC
    Let me just reiterate the coolness of Cantrell's CPAN Dependencies --this one illustrates the problem especially well. While the percentage isn't entirely fair, there is much truth in it.

    Part of what makes Perl cool and successful is its portability, which it achieves by requiring little of the host system. Another part is its ability to work with whatever external packages are available. Thanks to CPAN it's not quite the same situation for Perl modules, but I think these criteria still apply.

Re^2: Module Bloat and the Best Solution
by Your Mother (Archbishop) on Nov 09, 2007 at 22:51 UTC

    I like all your points but-

    Since CPAN is a horde of people you don't control, you can save yourself a lot of work, but you also take on a lot of risk (which is not an absolute definition).

    I say the risk is approximately zero unless your general planning/design skills are totally haphazard.

    You downloaded the code, it's done. The only "risk" is that the author will take it an unwanted direction or something. You don't have to upgrade and you can fork the module or abandon it for your own new implementation with the same API so your other code won't have to change. Either way, you've lost nothing because you would have written/owned it otherwise to start with.