Reinventing the wheel and human evolution
This narrative talks exclusively about the need of reinventing the wheel in software development. This is diametrically in opposition to lot of what is talked about in many of the GNU/Linux conferences/seminars.
More often that not I have heard this view that because GNU/Linux is made in the open there is no need for reinventing the wheel. This was also one of the ideas given by Abhijit during his lively presentation on the philosophy behind GNU/Linux. I happen to strongly disagree with that theory . I actually believe that even if we try reinventing, we couldn’t reinvent the wheel, at least the same wheel. That’s nature at work.
Giving below my reasons alongwith examples of the same.
Let’s take a short walk down the memory lane :-
The first web browser which Tim Berner’s Lee’s WorldWideWeb browser which was later named Nexus. Then after sometime came the line-mode browser . Then sometime around the same time came ViolaWWW . Then came Lynx and so on and so forth. You can see the whole generations of browsers at wikipedia . These were all web-browsers.
Now let’s take another example. Addons for mozilla. Now if you go on to the addons.mozilla.org you would find (if you are lucky) then 5~10 addons doing same/similar functionality that others.
Lastly , Multiple GNU/Linux distributions
Now while having established that reinventing the wheel happens, let’s also look why it happens, some of the possible reasons :-
a. Developer doesn’t fix bug’s
b. Developer isn’t communicative
c. Developer isn’t interested in having/making feature X work.
d. Developer isn’t responsive to external change.
e. Dependability on a single service/provider.
f. The cost/benefit ratio isn’t working in the developer’s view-point.
Now while I have written developer, it doesn’t mean it doesn’t or cannot happen for big teams as well. There are numerous examples to give . For e.g. see Internet Explorer .
The last point I made is equally important as well. What if for some reason or the other the project halts for things outside their control . For e.g. there are/were many apps. which didn’t make the KDE3-KDE4 transition and I’m sure some never would.
Now,what is also interesting is that even though you try to emulate or give the same user-experience its never quite the same. The simplest reason being whenever you do try to reinvent the wheel, you know what the current wheel’s issues are and you have ideas to make the wheel better thereby changing the wheel itself.
The other part of this reinvention is that it gives much needed competition to the developer. If this is not there, s/he would be free to charge whatever s/he wants. In such a case where are consumer rights.
What I’m saying is just common sense and more probably than not, somebody might have done a better job at it. Its just my rambly way to put out the same thing.
Update :- I had been thinking should I or should I not write but what the hell, we live only once. If you guys seen the ViolaWWW homepage and see the feature-set its of the browser, its just like of a browser which might have released yesterday. I am not trying to belittle vendors like Mozilla and Google Chrome but saddened what those years of Internet Explorer team doing nothing has cost us. How much we are behind or we could have been 😦
Peace out 🙂