Reinventing the wheel. ---- ''Wheels don't have any tires, and shouldn't.'' ''What numb skull went and added tires to the wheel? The wheel was good enough as is!'' A wheel with tires is a special reinvention of a wheel... ''A wheel with tires is not a wheel.. it is a wheel with tires. It is no good. Stop reinventing the wheel.'' Reinventing and extending the wheel... is extremely important though. Don't be afraid to reinvent the wheel! In fact this was one of my software buddy's company logos: "reinventing the wheel, every time" via Margin Software. ---- I love it when someone complains that I'm reinventing the wheel. What these folks don't realize is that the wheel is reinvented ''every second of every day'' in virtually every engineering domain. Ball bearings used in skateboards make a really ''bad'' method of moving a car along the street, and wagon wheels are not the best tools for precision aiming of a 500-inch telescope that costs more than the GDP of the state in which you live to build. Likewise, a linked-list package written by someone else might not fit some criteria I need fulfilled in my code. Or, as is often the case, the time investment required to just write my own Foo''''''Bar library is less than the time required to learn someone else's. The ''real'' software crisis in today's world is not that there is no code reuse, it's that code, in the global context, ''is inherently non-reusable.'' Parametric polymorphism goes a long way towards realizing the dream of honest-to-goodness, really reusable code. However, its adequacy to cover all reuse scenarios has yet to be proven. The rampant fad of "design patterns" clearly demonstrates that ''reusable ideas and concepts'' are substantially more powerful than reusable code. --SamuelFalvo Wow, I think you may have managed to raise the value of this page back into the black... That's quite an accomplishment, Mr. Falvo. ''Yeah, originally, this page was just reinventing another one... Stop reinventing wiki pages, we already have one OverHere.''