I think what the author is talking about is redesign and not reinvention. According to Wikipedia "Reinventing the wheel is a phrase that means to duplicate a basic method that has already previously been created or optimised by others".
What I understand and interpret is "method" implies "concept". Reinventing the "concept" of wheel does not make sense especially if your end product is not wheel but a car. The connotation here is more do with the focus than improving the current solution. If you fundamentally want to redefine the rolling motion of wheel with something else then I think the phrase applies more appropriately.
Don't reinvent the wheel if you have no clear reason / vision to do so. Period.<p>Also most "re-inventions" are driven by a lack of understanding of the existing solutions or the non existing faith to stick to conventions. Many of the conventions are probably a legacy and should be "attacked" BUT if you do that, have a clear vision and reason to do so. Just don't go the road because it looks easier. It won't.
In the context of startups, I think reinventing the wheel makes sense when it's your primary product and you can do better than what's out there. Most of the examples listed in the article fit this. If it's what you spend all day thinking about and working on, you're probably better suited to reinvent it than anybody else.<p>Reinventing the wheel doesn't make as much sense for something that isn't your core product. For example, if you're trying to create the next personal financial webapp, it may not make sense to embark on a project to create a new JavaScript AJAX framework or message processing queue, since those aren't your product and there are a bunch of decent libraries already. There are counterexamples to this (Ruby on Rails), but in most cases, startups with limited resources need to take advantage of existing libraries/systems as much as possible. Reusing existing technology frees up more time to worry about your core product.
<p><pre><code> For example, in programming there is a wide-spread 1st order theory
that one shouldn't build one's own tools, languages, and especially
operating systems. This is true — an incredible amount of time and
energy has gone down these ratholes. On the 2nd hand, if you can build
your own tools, languages and operating systems, then you *absolutely
should* because the leverage that can be obtained (and often the time
not wasted in trying to fix other people's not quite right tools) can be
incredible.
</code></pre>
Alan Kay <a href="http://webcache.googleusercontent.com/search?q=cache:fPHDWbwm5E0J:http://www.viewpointsresearch.org/pdf/m2004001_power.pdf+%22build%20ones%20own%20tools%22" rel="nofollow">http://webcache.googleusercontent.com/search?q=cache:fPHDWbw...</a>
<a href="http://www.viewpointsresearch.org/pdf/m2004001_power.pdf" rel="nofollow">http://www.viewpointsresearch.org/pdf/m2004001_power.pdf</a>
Totally disagree. I don't think I've ever heard this phrase used when someone's primary intention is to make a better wheel. If you're building cars, <i>do not</i> try to reinvent the wheel. Leave it to someone who is all about wheels.<p>Which is my main beef with this article: when it comes to developers, you absolutely can reinvent a piece of technology, but if it's not the focus of your business, you need to be prepared to make it your focus if it's really that important or that big an opportunity. There are a ton of great examples of technology being reinvented or improved (see HipHop from FB and FlockDB from Twitter), but they tend to represent a marginal plus to the business and are still not their core focus. I hate it when developers want to create their own database for their app, their own game engine for their game, etc. Wheels, game engines, and most software is a full time business, not an adjunct. Just use what's available to you until you absolutely need to do it over or do it yourself.
The author is taking the phrase too seriously. I think he has a problem with people misusing or over-using the phrase. I think don't reinvent the wheel is a great phrase when a particular action is futile with respect to a much bigger goal, and is often due to the negligence/naivety of the person who's not supposed to reinvent the wheel.<p>When I was working on my undergraduation project and building a chatbot, I was trying to make it smart by querying Wikipedia. I started writing a web scraper since I had no idea how else to do it (I was new to web programming at that point since I was a total C++ freak.) My prof told me, "Don't reinvent the wheel. Use the MediaWiki API or something like Beautiful Soup"
Agree with the post but it's ignoring the countless number of people who decide to write their own library for X that adds <i>nothing</i> beyond what anything else already does.<p>Don't reinvent the wheel. Do invent a new type of wheel with more awesome.
The Wheel re-invented: <a href="http://boingboing.net/2009/12/18/sideways-rolling-omn.html" rel="nofollow">http://boingboing.net/2009/12/18/sideways-rolling-omn.html</a><p>And that is just an example.<p>If your goal is to make money the exact same way the man before you made money, then do not re-invent the wheel.<p>If you want to change the world, then try and make a better wheel.
On one hand, he says he hates the phrase, but it doesn't look like he hates what it means - or maybe he doesn't understand what it means - I'm a little confused by the take-away from the article.<p>That being said...<p>Re-inventing the wheel should mean throwing away everything we know about the wheel and inventing something that solves the same problem - only better.
I guess an old post from my blog is relevant (I think it was already submitted to HN a long time ago): <a href="http://www.mostlymaths.net/2010/03/8-reasons-for-re-inventing-wheel-as.html" rel="nofollow">http://www.mostlymaths.net/2010/03/8-reasons-for-re-inventin...</a>
I don't think it is just about improving, reinventing or redesigning something. Each problem has its own issues and maybe different in enough unique ways that its better to start from scratch every time so you solve the problem fully with out being trapped by another solution. Then decide to pick up a well known tool or make your own that fits.<p>I think this saying is an unfortunate one and becomes more misleading as newer and newer "wheels" keep coming out.
The saying refers to the roundness of the wheel, which has not been re-invented for thousands of years. Changing the material are optimization which deserve much credit but aren't new inventions on the definition of the wheel. Wikipedia defines a wheel as "A wheel is a device that allows heavy objects to be moved easily through rotating on an axle through its center"
Generally when people use that phrase, they mean don't recreate something that has been implemented if you are not going to make it faster, more modular, contain more features, etc.<p>Saying that developing GIT is reinventing SVN seems problematic. Both are very different version control systems. GIT isn't simply reimplementing what SVN does.
What I have discovered is the more you learn about any particular technology the more you fully understand its weaknesses and limitations. If you learn enough you eventually get so frusterated that you have no option other than to sit down and start over from the beginning.
This is one sided, there are many instances when people repeat the same process over and over again to get to get the same results. Improving something is not reinventing the wheel, building the exact same thing over and over again is.
<i>Is there anything more reinvented than the wheel?</i><p>This line is brilliant. How often does one run across such a definitive reply to a shibboleth?