If the routines are good and well documented, I refuse to worry about whether new programmers will lean on them. Consider a few examples: Perhaps you can see where I'm headed. Over time, we tend to raise the level of our efforts. This leads to current complaints like: If we use a data modeler like Class::DBI (or one of its cousins) no one will know sql. There are three groups of people after such a shift:
  1. The ones who are able to work on the abstraction.
  2. The ones who can use the underlying tool without the abstraction, but don't understand the magic of the abstraction itself.
  3. The ones who rely on the abstraction.
Whether anyone needs to be in the second group is really what the debate is about. I would argue that if the abstraction is useful enough and the implementation of it is documented well enough, it doesn't matter whether anyone is currently in group 2. Smart people will be able to migrate through group 2 and into group 1 when the need arises.

This discussion reminds me of the original Star Trek where Gene Rodenberry (probably misspelled) worried several times about societies which developed such successful technology that generations went by when no one needed to work on it. Then, inevitably, it began to fail and the society was on the brink of dying out because no one could fix it.

That plot is not particularly compelling to me. No technology gets to that point unless it is no longer used. As long as someone in your shop is maintaining your abstractions, work on them can continue. If they are internally documented, others will be able to step in when the maintainers leave the company. In the mean time, everyone else works much faster.

If the Perl community suddenly needed me to step up as the maintainer of hashes, I would have a lot of catching up to do. Similarly, colleagues would have some catching up to do, if they suddenly needed to work on the abstractions I maintain in our shop. I don't seem to loose much sleep over either of these situations. Mean while the abstractions in question save a lot of time.

Phil


In reply to Re: Helpers Vs. Hurters by philcrow
in thread Helpers Vs. Hurters by BaldPenguin

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.