Thursday, February 6, 2014

Not Invented Here Syndrome


There has been a lot of discussions lately on forums about the NIHS (Not Invented Here Syndrome). It is very easy to pick a side and go with it. If you do not agree with NIHS, you would discard it as a waste of time, re-inventing the wheel, or at least, describe the programmer as a wild cowboy.  If you agree with it, you may think that you know better than anyone else (also thought by those who disagree with NIHS) and that every piece of software, including libraries, are junk. Hence, your need to write your own.

From my perspective, I have seen both sides of the coin.  I would pin-point, however, that it is imperative that we programmers continue to re-invent the wheel. It does not mean that what you create will be the next big library or program. It will also not guarantee that people will like it and adopt it.

Here is a minimal list of programs and libraries that have been 're-invented' and, if you use any of them, you will see the the NIHS paid off for all of us who make use of them one way or another

  1. vi and vim
  2. top and htop
  3. Several Linux WM (gnomeKDEUnityxfce, etc..)
  4. netcat and ncat
  5. google and duckduckgo
and the list goes on and on and on.

Another benefit we, as programmers, get from adopting the NIHS wisely is the amount of learning we are exposed to.  Sure there are thousands of computer languages out there, but will you appreciate any language if you have not attempted to write your own? Probably, but not as much as a programmer who has taken that feat. The same analogy extends to operating systems and anything else.

So, if you have time in your hands and love programming, go ahead... write yet another language, yet another operating system, yet another library to manage dates, yet another javascript library... at the end of it all, even no one adopts what you wrote, you will have learned more than any book can teach you. 

Happy programming.