This is a created article in which the information may have evolved or changed.
C programmers have a "reinvent the wheel (Reinventing the Wheel)" character. In an object-oriented, component-based fashion and re-use today, this trait seems to always be considered a negative case. But the great Chairman Mao taught us that to look at everything dialectically, nothing is absolute. There are two sides to things, there are good and bad, and bad there is good. To "Reinvent the wheel" this matter, in addition to see its shortcomings, but also to fully understand its good side, not a stick to kill, so that in a specific scenario to make the right and reasonable judgment.
I do not intend to give a lengthy lecture on this subject, and a few vivid examples will suffice to see the other side of "reinventing the wheel".
Let's review the evolution and transformation of some products or tools on the road to IT technology development:
-From Apache to Nginx
-From CVS to Subversion to git, mercurial
-From memcached to Redis, leveldb
-From Symbian, WindowsCE to Android, IOS
-From UNIX to Linux
-From Perl to Python to Ruby
-from C, C + + to go
-From IE to Firefox, Chrome
-from normal MP3 player to Apple's ipod
Such. Some examples you may feel a bit farfetched, but it doesn't matter. You just have to identify one or two of them. What I want to say is that "reinventing the wheel" is, to some extent, a driving force behind progress and change, and that is the other side of reinventing the wheel. Therefore, dialectically to treat "reinvent the wheel" is a professional programmer should have the correct attitude. We should not deny "reinventing the wheel" on all occasions, because you may stifle an innovation, or even a great tool or product.
, Bigwhite. All rights reserved.