There is a difference between reuseable and editable. Reuseable code has to be so thoroughly
documented that you never need to look inside it to know exactly what happens under corner
cases. I have run into this problem so often that I feel, like Knuth, that editable source is
better. Perl's LWP is a great example. I love it, it usually does just what I want, but then
there are conditions where I don't know what it does, and I have to inspect the source or poke
around in the debugger to find out exactly what is going on. If it were closed, I would be
stuck. If it were proprietary but with source available, like Microsoft's useless "shared
source", I would still be stuck if it didn't do the right thing or had a bug.