Reinventing the Wheel: Just How Evil Is It?

Reinventing the wheel has become like a stigma in today's world of programming. We are constantly told that some people had a godly intelligence to create something that is beyond redesign! You, as a "senior developer" should just use your mind as a bucket of others' ideas and concoct solutions based on those. The more you learn, the more your bucket enlarges so you will ultimatly reach a level of no "wheel reinvention" and finally achieved ultimate "seniorship".

What happened when wheel was no longer reinvented?

The end result of applying no wheel reinvention can be readily seen when having to work with software developed by (most) other developers:

This mindset that promotes conformity is responsible for an enormous decline in the quality of programming and can only be addressed by its nemesis: creativity or "reinventing the wheel".

When should we reinvent the wheel?

Whenever you think you can build a better "wheel" by learning from your or others mistakes, while maintaining rock-solid allegiance to principles of performance, simplicity and elegance, reinventing the wheel becomes an invaluable vector of progress IF not fuelled by ignorance/arrogance.

Why should only these principles qualify as programming standards to follow? Because they define a working methodology that imposes no constraints except striving for clarity and perfection. This way programming becomes an ungoing quest to intellectual discovery and delight!