in reply to Re^3: Perl Monks += TMTOWTDI (fallibility)
in thread Perl Monks += TMTOWTDI

Well, I'm incredibly egotistical so I won't answer that. I will however say that using someone else's code, even if they are a far better programmer than you, creates several additional areas of concern. You have to ensure:

I left out unintentional bugs although I've often found (keyword: found) far fewer in my code :). A much larger problem (especially in Perl) is style. I can read my code far, far easier than most other people's. I'm not talking about indentation, and unimportant/easily fixable issues here, but larger (mildly subjective) design issues. Often I've found it quicker to write a module than to read it, understand it, and do a quality assessment.

However, your point is obviously a valid area of concern. To an extent it is the same issue that I'm using perl instead of writing my own language (rest assured, it is in my todo.list). You could even take it down to the level that I should be creating all hardware and software from scratch (unfortunately I'm not that good... yet). There must be a level of trust, or more accurately an acceptable risk threshold, when dealing with any technology. I'm just a little more paranoid than most.

There are other advantages to this approach as well. If I had always just used existing tools and taken the easy way I don't think I would know half the things I do now. I also occasionally come up with something that improves upon the existing. And as crazy as it might sound, I also enjoy writing what is often considered tedious code (XML parsers, template systems, drivers). It's sort of a "well I haven't written project x yet, might as well go ahead." Or more articulately, as Richard Feynman once said "What I cannot create, I do not understand."

So yeah, I'm just babbling on now, I intended this to be a two sentence response, really :). So point taken, but there are a bunch of other things to consider, and even if they don't outweigh your point, it clears out a couple bytes of my memory needed for reinventing stuff :).

Replies are listed 'Best First'.
Re^5: Perl Monks += TMTOWTDI (fallibility)
by Aristotle (Chancellor) on Apr 16, 2003 at 11:59 UTC

    Yes, exactly. I wasn't advocating blind trust, either.

    Nor was I saying not to ever reinvent the wheel - it's the only way to learn. You just should be very sure your own wheel will end up round wheel before you dismiss existing ones and embark on creating one, when you're writing production code. There's also the issue of not having to maintain the wheel yourself if it's a standard issue one.

    And so on.. I think we basically agree here. :)

    Makeshifts last the longest.

      And so on.. I think we basically agree here. :)

      Not so fast! ;)

      You just should be very sure your own wheel will end up round wheel before you dismiss existing ones and embark on creating one

      Ah, but failure makes you appreciate the detail that goes into many programs. It leads to increased understanding of the issues that arise and tradeoffs that you have to make. Even completely "failed" projects can create something usable - knowledge.

      The maintenance point is a good one as well, better to get other people to do that work (as long as they don't mess with my interfaces ;)

        Wait, wait, not so fast yourself. I said you should be sure you'll end up with a round wheel when writing production code. When not, feel free to do whatever you wish, of course. :)

        Makeshifts last the longest.