When and where should one consider reinventing the wheel
by on Friday, 16 January 2015
Currently rated 4.99 by 27 people
It depends on "what you need" and "what are you reinventing".
Context is the key!
Reinventing the wheels, is not a great idea for the following reasons:
Functionality already exists and is well known to be stable and popular.
Your version adds nothing new.
Your version introduces bugs or constraints such as thread-safe and etc.,
Your version is missing features.
Your version has worse documentation.
Your version is lacking unit tests compared to what it is replacing.
Reinventions make sense for the following reasons:
Available framework or library is too heavy, and you only require a portion of it. In this case creating your own extremely light-weight version that suites your requirement is a better approach.
When you want to understand and learn something complex, creating your own makes sense.
You have something different to offer, something others' implementations do not have. May be a new twist, new feature etc. Most of the times you can extend the existing Framework implementation with polymorphism, but again it your choice of need.