7 ms·
Don't Reinvent the Wheel
- abbasmehdi 16y agoThis 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.
- KeithMajhor 16y agoIf it takes less time to do it again yourself than it does to find and understand someone else's solution is that so bad?
- abbasmehdi 16y agoThat's a systemic flaw, not a justification for redundancy.
- KeithMajhor 16y agoFrom the perspective of an individual, fixing a systemic flaw is going to take much longer than just operating within it. There are cases where "reinventing the wheel" is just the best way to go.
- abbasmehdi 16y agoYea, true.
- spc476 16y agoSo I guess writing a DNS resolving library wasn't justified, even though it dropped the memory footprint from 15M (when using C-Ares) to 400k (a bit more information about this here: http://news.ycombinator.com/item?id=2324428 http://news.ycombinator.com/item?id=2324428)
- abbasmehdi 16y agoReinventing the wheel, not making a better wheel.
- colinhowe 16y agoAgree with the post but it's ignoring the countless number of people who decide to write their own library for X that adds nothing beyond what anything else already does. Don't reinvent the wheel. Do invent a new type of wheel with more awesome.
- _delirium 16y agoIt's nitpicky, but the second time I saw "itself" written as "it's self" I cringed extra-hard.
- slewis 16y agoIts a good point but less relevant to the discussion than some of the other comments here, and currently has 3x the points of all other posts in this thread. Don't just upvote just because you agree, upvote because a post contributes to the discussion!
- _delirium 16y agoI actually agree, and would probably downvote it if I saw it at +16 and it weren't my comment! (Actually, is there HN etiquette on that? If I think a comment is ok, but doesn't deserve to be as high up as it is, can I strategically downvote it? Or should I up/downvote comments without regard to their present score?)
- cema 16y agoNo etiquette. There are rules but even they are nit universally followed.
- 6ren 16y agopg supports strategic voting. http://news.ycombinator.com/item?id=2403753 http://news.ycombinator.com/item?id=2403753 You can flag (click the comment's "link" link). Does criticizing a typo gratify one's intellectual curiosity? http://ycombinator.com/newsguidelines.html http://ycombinator.com/newsguidelines.html
- pemulis 16y agoI'm not so sure... When a blog post has basic grammatical/spelling errors, it means that the writer didn't bother to do any significant copy-editing. If the author can't take the time to copy-edit their post, why should we take the time to read it? The presence of obvious errors sends a signal that either the author's thoughts are disorganized, or he doesn't take them seriously enough to make sure they're expressed correctly. Disclaimer: I'm an English major, and I mean this as constructive criticism!
- threepointone 16y agorelevant - http://www.codinghorror.com/blog/2009/02/dont-reinvent-the-wheel-unless-you-plan-on-learning-more-about-wheels.html http://www.codinghorror.com/blog/2009/02/dont-reinvent-the-w...
- tarunkotia 16y agoI 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.
- vog 16y agoI fully agree with this. Moreover, the phrase "Don't reinvent the wheel" is not meant to stop you from reimplementing stuff. I just means that you should have a close look at what already exists before reimplementing it, so you don't follow the path of trials and errors that others have already gone for you. The best sign that someone reinvented the wheel is that the "new" stuff is completely inferior to what already exists. And this appears to happen quite often. So in my experience, the phrase "Don't reinvent the wheel" is merely meant to counteract the NIH syndrome.
- hardik988 16y agoThe 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. 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"
- deleted 16y ago[deleted]
- dawkins 16y agoThe good thing about reinventing the wheel is that you can get a round one. --Douglas Crockford
- InclinedPlane 16y agoGo ahead and reinvent the wheel if you think you can do a tremendously better job of it. Generally speaking if you don't have confidence that you can sell your wheel to the public at large on its own merits then you probably shouldn't reinvent it.
- Be-The-Water 16y agoI 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. I think this saying is an unfortunate one and becomes more misleading as newer and newer "wheels" keep coming out.
- sbochins 16y agoGenerally 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. Saying that developing GIT is reinventing SVN seems problematic. Both are very different version control systems. GIT isn't simply reimplementing what SVN does.
- rmoriz 16y agoDon't reinvent the wheel if you have no clear reason / vision to do so. Period. 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.
- lemmsjid 16y agoAgreed, I think the OP is missing the real meaning of the phrase "don't reinvent the wheel". The phrase does NOT mean "don't improve on the wheel". Nor does it mean, "The stone wheel is and always was great, don't try new materials." It means, "Don't create this whole thing from scratch thinking its original and new, when some research will reveal that it isn't." In patent terms, it means, "Check for prior art." Linus Torvalds (OP's example) had a deep knowledge of Unix before he began what became Linux. If he hadn't such knowledge, he would have not been successful, for one of the great draws of Linux was its familiarity. In other words, he didn't "reinvent the wheel".
- abstractbill 16y agoReinventing just about any wheel will at least teach you a lot about how that type of wheel works, even if your reinvention never makes it into production.
- oscargodson 16y agoExactly, exactly, exactly. :)
- smhinsey 16y agoThis is my standard MO for learning big new ideas. Say for example I want to use MVC for the first time. Once I think I understand the general idea, I will build my own. I might peak at Rails or Struts or whatever to see how they solve something, but in general I just go my own way. Once I have something to approximately proof of concept level, I feel ready to go out and evaluate existing options with a pretty high level of confidence in my conclusions.
- hanifvirani 16y agoDon't reinvent the wheel. But by all means, upgrade and evolve the wheel.
- gruseom 16y agoIs there anything more reinvented than the wheel? This line is brilliant. How often does one run across such a definitive reply to a shibboleth?
- 3am 16y agoThat's not what a shibboleth is.
- dpcan 16y agoAgreed. I had to Google it, and I don't really know what word he meant either now.
- gruseom 16y agoMy usage is a well-established if secondary meaning. See for yourself: http://www.merriam-webster.com/dictionary/shibboleth http://www.merriam-webster.com/dictionary/shibboleth, http://dictionary.reference.com/browse/shibboleth http://dictionary.reference.com/browse/shibboleth, http://www.google.com/search?q=site:wikiquote.org+shibboleth http://www.google.com/search?q=site:wikiquote.org+shibboleth, even (selected at random from project gutenberg texts) http://www.gutenberg.org/files/356/356-h/356-h.htm http://www.gutenberg.org/files/356/356-h/356-h.htm. Can you find a better word? I'd happily replace it, but I can't think of any other that means a platitude that happens to be false. Just to get back on topic, I'm disappointed that no one else seems to appreciate the beauty of oscargodson's question. It's one of those things that is dope-slap obvious, but only once you see it.
- 3am 16y agoRight on both counts! Consider the upvote my atonement for being overly and not entirely correctly nit-picky.
- sagarun 16y agowell said, if we didn't reinvent the wheel, we will be having just one type of wheel!
- ajaimk 16y agoSometimes, reinventing the wheel works. Literal Example: the Dyson ball.
- kapitalx 16y agoThe 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"
- RBerenguel 16y agoI guess an old post from my blog is relevant (I think it was already submitted to HN a long time ago): http://www.mostlymaths.net/2010/03/8-reasons-for-re-inventing-wheel-as.html http://www.mostlymaths.net/2010/03/8-reasons-for-re-inventin...
- kleinsch 16y agoIn 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. 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.
- oscargodson 16y ago100% agree and a point I was trying to make. This whole thing was a response to a reply to a comment I made. I had made a comment that the library they were doing a tutorial on was stupid because it could be done better and I could do it better. They then told me not to reinvent the wheel since it was already done by "geniuses". But yes, exactly. I use jQuery, but I usually write my own plugins. Id never been able to write a library like jQuery on my own, or in any reasonable time frame, but I can write a slideshow for example in the same amount of time it takes me to find one that works for the project, read through the docs, read the API and implement it. But to some, and some past clients, thats stupid and im "reinventing the wheel." Thanks for the comment!
- dotcoma 16y agoSo, this is a top5 post on HN? >The phrase it's self is flawed. itself. I stopped reading there.
- dstein 16y agoWhat 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.
- dpcan 16y agoOn 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. That being said... Re-inventing the wheel should mean throwing away everything we know about the wheel and inventing something that solves the same problem - only better.
- oscargodson 16y agoI said, and mean "Reinventing the wheel is what makes good developers legends, not the other way around. Remember that." And i never said i hate what it means, ever. I said I hate when people say it as a bad thing.
- terryjsmith 16y agoTotally 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, do not try to reinvent the wheel. Leave it to someone who is all about wheels. 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.
- Rhapso 16y agoThe Wheel re-invented: http://boingboing.net/2009/12/18/sideways-rolling-omn.html http://boingboing.net/2009/12/18/sideways-rolling-omn.html And that is just an example. If your goal is to make money the exact same way the man before you made money, then do not re-invent the wheel. If you want to change the world, then try and make a better wheel.
- ignifero 16y agoThey did not reinvent the wheel, they invented a new thing that reminds of a wheel. I can't believe we are actually arguing this post. Basically, it stems from the misuse of the word "reinvent" in the media instead of "revolutionize"
- Rhapso 16y agoYou are right. That is a better way to think of it.
- 6ren 16y agoFor 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. Alan Kay http://webcache.googleusercontent.com/search?q=cache:fPHDWbwm5E0J:http://www.viewpointsresearch.org/pdf/m2004001_power.pdf+%22build%20ones%20own%20tools%22 http://webcache.googleusercontent.com/search?q=cache:fPHDWbw... http://www.viewpointsresearch.org/pdf/m2004001_power.pdf http://www.viewpointsresearch.org/pdf/m2004001_power.pdf
- oscargodson 16y agoAnd, how would one learn how to make their own tools, languages, and operating systems? You have to build them to learn how. So how does one build them without ever having built them?