in reply to Re: Calculating statistical median
in thread Calculating statistical median

What's the advantage of coding it yourself in this specific situation? Other than for fun, which I completely understand.

I'm asking because I normally code things myself instead of using available modules for one of two reasons: to learn how to do it (aka for fun), or to avoid the overhead of loading a module. In your example, you're loading two modules instead of the single one I suggested. Plus, you obviously already know how to do this operation, so it can't be a learning exercise. So I'm baffled.

I am not implying anything, I'm just truly curious as to why. :)

Replies are listed 'Best First'.
Re^3: Calculating statistical median
by tlm (Prior) on Jul 15, 2005 at 15:33 UTC

    The principal reason in this case is that I try to minimize the number of non-core modules that my code uses, since each non-core module introduces one more potential obstacle, however small it may be, for someone else using my code. I.e., I'd never use a non-core module just to import a simple one-line function. More generally, I weigh the tradeoff between coding something myself and introducing a non-core dependency. The bigger and more complex the candidate module (i.e. the more potentially difficult its installation by some other user), the more I am willing to code myself.

    But I don't want to overstate this point! When I speak in this context about "coding something myself" I am usually referring to a small bit of functionality that I may be able to implement in only a few lines of code. Of course, this also assumes that I feel confident in coding something myself; there are many problem areas that I don't understand well enough and am glad to use modules written by others, even if my needs could have been met with only a few lines by an expert.

    One other reason why I may code something myself is if I find the documentation for a module so poor that I suspect that the apparent time saving of using the module instead of coding it myself will be lost trying to make up for the bad documentation (e.g. by wading through the source).

    A third reason is that sometimes the available CPAN alternative is not good for some reason (usually speed).

    But again, just to be clear, even with all these considerations, I end up using plenty of modules, both core and non-core.

    the lowliest monk

      Good reply, that makes perfect sense. ++!