Everyone has their own itches to scratch. It would be nice if their scratcher worked on your itches, but it doesn't appear so. And I suspect that most people don't have the time to scratch your itches -- they have too many of their own.

So the decision then becomes to adapt theirs or create yours. Working with people you've never met can be hard, especially when you're asking them to do more work, so you might as well create your own, right?

But while your new module might start out focused and with an elegant idea of separating everything into nice neat little compartments, real life and complex problems often force messiness on us. What's insidious is that the messiness is a little bit here, a little bit there. And (being generous) I'd hazard a guess that this accumulation of messiness is one reason why publicly released modules get the way they do.

IMO, the real flexible, elegant solutions for nontrivial problems have either been out for a while in some form or other (like the Template Toolkit) or have been designed by lots of smart people doing nothing else. There are exceptions of course (look at SOAP::Lite), but they prove my (just made up) rule.

So what's my conclusion? I suppose if I wrote and supported one of these modules and you came to me with a request to separate some logical piece out, I'd take it with a grain of salt inversely proportional to the amount of work you're willing to put into it. Even if it's a good idea. There are an awful lot of good ideas floating around but no time for most of them.

Such work doesn't even have to be implementation code -- why not write up some dummy code as to how you want something to work? Frequently it's easier to work backwards from the result than try and create it from thin air. And of course everyone loves people who write documentation...

Related link: A defense of the NIH syndrome.

(I've now used up my quota for the words 'itch' and 'scratch' for the rest of the year.)

Chris
M-x auto-bs-mode


In reply to Re: The temptation to roll your own module than use an existing one.... by lachoy
in thread The temptation to roll your own module than use an existing one.... by rrwo

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.