Originally Posted by Photon
I'm all for reinventing the wheel. Each time it has been, it's become that bit better. If you think doing so is wasting programmers' valuable time, then don't ask the previous inventor to value the time he put in at zero.
I don't believe in the wheel.
I believe what you get instead is a slew of randomly shaped cogs and doodads. Mostly, what you get is a odd shaped lump that you have to awkwardly build or reshape your own code to fit in, then any further additions to your code have to be shaped around the "wheel" in more complex ways than they would otherwise have to have been. Often you can't change the "wheel" to be less awkward, because whomever you got it from occasionally fixes some of the more minor problems with it, and isn't interested in your fixes, and if you change it yourself without getting your changes into their original template "wheel", bringing in their fixes incurs more maintenance.
That's not to say I don't use other people's code, but rather that when I do, I do a cost/benefit analysis. And when I take my car in to get a new wheel, they get one that fits the car, and don't change the car to fit the wheel. The software wheel, is false advertising, but the peddler doesn't give you a refund after it's cost you money to deal with the flaws.