Don't Reinvent the Wheel
oscargodson.posterous.com
oscargodson.posterous.com
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.
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.
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".
Don't just upvote just because you agree, upvote because a post contributes to the discussion!
(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?)
You can flag (click the comment's "link" link).
Does criticizing a typo gratify one's intellectual curiosity? http://ycombinator.com/newsguidelines.html
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!
Its a bit dissonant when a post is upvoted enough to be on the front page but the highest voted comment is about the post's style rather than content. The post upvoters were probably voting on content, not style.
2. My grandmother has a Ph.D in linguistics and knows probably a dozen languages. Boy would it be hilarious for you to talk to her. I can't even mention how many times I've talked to her about how spelling and grammar doesn't matter as long as the point and idea is conveyed and UNDERSTOOD. She's even against spelling out of things like "though" and apostrophes altogether.
3. If my blog post put you off this much because I spelled "it's self" instead of "itself" and had grammatical errors when I was in a hurry to write a response to someone, don't read it.
4. Not saying I'm even 1% as smart as him, but saying my thoughts are disorganized is a compliment. Einstein and some of the smartest people of all time have failed at writing/english and always been known as "disorganized": http://25.media.tumblr.com/b9vfl4b63gnm701hGDPaIVP0o1_500.pn... -- his desk. Organized people bore me to death.
I'd like to address your third point right off the bat, since it's the most important one: I didn't read your blog post. I stopped reading it after you spelled "itself" as "it's self". And, just like you said, it's because your grammar put me off. It's not that big of a deal to me, and shouldn't be to you, if you never intended anyone to read your post except for the person you were replying to. But if that was the case, why put it on a blog? If you want your blog posts to have the widest possible appeal, you should use standard spelling and grammar. It looks better, and it's easier to understand. No matter what your opinions on the relative importance of grammar, things like readability and aesthetic appeal matter. And if your work is not of a technical nature and is being published for a wide audience - like this blog post - they matter even more.
I'm not sure what to make of your point about your grandmother, since I'm sure you're aware that there are plenty of people with Ph.Ds in linguistics who would disagree with her intensely. I'm sure that a conversation with her would be interesting, and she might even change my mind, but the fact that she has a Ph.D wouldn't factor into it at all. My personal opinion is that spelling, grammar, and other elements of style are extremely important. The way that something is written has a major affect on the way it is received by the reader, and slight variations in word choice and spelling can change the actual semantic meaning of a sentence.
Using the "itself"/"it's self" thing as an example: Their meanings are not identical. "Itself" is often used as an apposition, which is how it would have been interpreted in the context of your sentence. "Its self", on the other hand, puts extra emphasis on the "self". Someone might legitimately want to spell it this way to emphasize both the phrase and "its self", which would be the phrase's characteristics. It doesn't read as an apposition, though, so the meaning is different. This gets right to the heart of what we're talking about: Using incorrect grammar has changed both the stylistic emphasis and the literal meaning of the sentence in such a way that makes it harder for the reader to understand. The reader shouldn't have to reconstruct what you meant to say out of what you actually said. (And, in any case, it would never be "it's self". Even following your grandmother's grammatical rules, you should have cut out the apostrophe entirely.)
As far as disorganized thoughts, that's fine when they're in your head, but when you put them on paper, you have to organize them. Organizing thoughts is what language is for.
Sorry for the looong post, but I wanted to make sure you understand me. I don't mean to attack you personally, but that seems to be how my comment was interpreted. A criticism of your writing is not a criticism of you. The main point I wanted to make is that style matters. It really, really, really does. I know you didn't necessarily mean for your post to climb to the top of Hacker News and get this level of scrutiny, but I hope you found the feedback useful. Don't take it too personally when someone criticizes something you write; it's just an opportunity to improve.
He can illustrate her exact point, and mine also better than I can here.
Which is wrong. Full stop. This isn't being pedantic about grammar or usage. You used the wrong word. That's not something that you can defend from any kind of fortress of linguistic theory.
And, yes, we could figure out from the context that you meant to write "itself" or "its self". But we could also figure out what you meant if you wrote, "The phrase itsalf is flawed." The fact that we can decipher your writing is not the point. You weren't trying to employ creative, heterodox language here. You simply wrote the wrong word. And I think that you know that. You went back and changed it, as you would go back and change any other typo after it was pointed out to you.
If you changed it, why defend it? The correct response is, "Yeah, I wrote this in a hurry, and I used the wrong word." Don't get all umbraged and whatnot. Just fix it and move on.
So, IMHO, good spelling and grammar are essential to any discussion.
You also used "it's" instead of "its" in a couple of places.
You can most assuredly figure what it is, and the stupid pattern I follow.
Now, one thing I failed to remember is my girlfriend is dyslexic. Unless she hunts and pecks one key at a time, she cannot read, or even comprehend, that password. L33t is also the same way: its unreadable to her. Though, one really cool thing about her dyslexia is we can read the same book together: I read it right side up, and she reads it upside down (she reads faster that way too).
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.
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!
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.
Alan Kay http://webcache.googleusercontent.com/search?q=cache:fPHDWbw...
http://www.viewpointsresearch.org/pdf/m2004001_power.pdf--Douglas Crockford
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.
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"
Don't reinvent the wheel. Do invent a new type of wheel with more awesome.
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.
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.
I think this saying is an unfortunate one and becomes more misleading as newer and newer "wheels" keep coming out.
Saying that developing GIT is reinventing SVN seems problematic. Both are very different version control systems. GIT isn't simply reimplementing what SVN does.
This line is brilliant. How often does one run across such a definitive reply to a shibboleth?
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.
>The phrase it's self is flawed.
itself. I stopped reading there.