2140: Reinvent the Wheel

Explain xkcd: It's 'cause you're dumb.
Revision as of 17:57, 22 April 2019 by Asdf (talk | contribs) (Transcript)
Jump to: navigation, search
Reinvent the Wheel
Right now it's a bicycle wheel, so we've had to move to lighter vehicles, but the reduced overhead is worth it. There was one week when a wheel of cheese got dangerously close to the first page, though.
Title text: Right now it's a bicycle wheel, so we've had to move to lighter vehicles, but the reduced overhead is worth it. There was one week when a wheel of cheese got dangerously close to the first page, though.

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: Created by a WHEEL OF CHEESE. Please mention here why this explanation isn't complete. Do NOT delete this tag too soon.
If you can address this issue, please edit the page! Thanks.

Transcript

Ambox notice.png This transcript is incomplete. Please help editing it! Thanks.
[Beret Guy is talking to Ponytail.]
Beret Guy: We don't want to reinvent the wheel, so every day we Google image search "wheel", and whatever object comes up, that's what we attach to our vehicles.
Beret Guy: Sure, external dependencies carry risks, but so far they've all been pretty good wheels.


comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

I took a screenshot of google image search at 2:24 PM ET on 4/22/2019, and a bicycle wheel is indeed the first result. I'm trying to figure out how to get my image into the wiki ;p 162.158.78.82 18:25, 22 April 2019 (UTC)

(same user) Man! I found an old account I made and logged in with it to upload a file, but it says I need special permission to do so! Baffo32 (talk) 18:33, 22 April 2019 (UTC)
If somebody with permission could upload this, it would be great: https://ipfs.io/ipfs/Qmf1a9NFFAcgWRUe45Ueg4FggXTUAd9BHMgEqWp23izchU Baffo32 (talk) 18:43, 22 April 2019 (UTC)
I get this (in the UK, using Google UK, and same result in a fresh Incognito session): https://www.makerlab-electronics.com/product/65mm-rubber-wheel-blue/ It looks like a decent wheel, albeit probably a bit small for most uses 141.101.99.11 22:41, 22 April 2019 (UTC)
Here it is on imgur: https://imgur.com/a/8nHemgW Baffo32 (talk) 19:38, 23 April 2019 (UTC)
Added the image to a trivia section, and links to it from the explanation. --Kynde (talk) 13:59, 24 April 2019 (UTC)

I looked for a cheese wheel by searching wheel but couldn't find any. there was, however, a roulette wheel 172.68.47.72 20:41, 22 April 2019 (UTC)

Looks like beret guy is working for an automotive startup, possibly one of the many software companies that are developing AI for self-driving cars? It is true that tires are made by outside suppliers (not by the auto companies) so in terms of software development tires could be called "external dependencies". However, tires are far from a semi-random selection as intimated here. A large amount of time and effort is spent developing special tires for each vehicle model to give the best possible compromise between many conflicting requirements such as: dry/wet/snow traction, noise, ride, wear, high speed durability (for high performance cars) and so on, the complete list has many more items.

If Randall is looking for new tires for his vehicle, I offer my standard recommendation: If you were fairly happy with the tires that came with the car, try and replace them with the closest possible equivalent to take advantage of the original development effort. This is not always possible, and of course if you are using the vehicle for a special purpose (mostly drive on dirt roads, use your car in weekend autocross competition, etc.), you may do better with something different.162.158.75.58 18:36, 22 April 2019 (UTC)

This comic could also be talking about coding, where reinventing the wheel is writing your own code from scratch, as there is other code which works perfectly well. This makes particular sense as the "external dependencies" could be in terms of code as well Gollum (talk) 18:45, 22 April 2019 (UTC)

I think the point is that their company is having to reinvent their cars to fit each dependency wheel, rather than develop a wheel that will fit their preexisting car. For cars, wheels are for the most part interchangeable, but external dependencies in software are very much not so. 108.162.229.100

I suspect this is a comment on JavaScript (JS) coding for the web, specifically the NPM node.js package manager. I'm not a front-end Web developer, but apparently lots of web pages use NPM to pull down dependencies, bits of code to accomplish some task, rather than write it new (thus, avoid 'reinventing the wheel'). The problem is there's poor control over what those dependencies do and how they might get modified on you unexpectedly. See the Wikipedia article on NPM for some history of bad breakages that have occurred.

I second this comment as being the key to the explanation. Especially when your external dependencies are also hosted on sites that you don't control; any functionality that you depend on can be replaced at any time, analogous to swapping out a sedan's tire for a bicycle tire. 108.162.215.202 20:03, 22 April 2019 (UTC)
thirded. googling a solution to your coding problem and then implementing it (as a third-party library or as code directly) is very much as described in this comic. yay, randall! --162.158.154.241 09:39, 23 April 2019 (UTC)

The point of the comic is likely that the term "Reinvent the Wheel" is not typically used in a literal sense to refer to actual wheels, as it is in this comic. Instead, it usually refers to exerting effort on something that adds no value over re-using something that already exists, whether it's a product's design or something intangible like an idea or study. We could probably provide a link to the Wikipedia article on the topic to help readers who are unfamiliar with the phrase. Ianrbibtitlht (talk) 19:38, 22 April 2019 (UTC)

I don't have a problem with the explanation mentioning that the comic might be making some statement about software developers carelessly using code off the Internet, but I'm not sure we can say with such certainty that this IS the point of the comic, as it currently states. I certainly don't get any indication that it's specifically about JavaScript. I think Randall just thought the phrase "Reinvent the Wheel" would be funny if he had a character using it literally, and anything deeper than that might just be our own personal issues. Ianrbibtitlht (talk) 22:32, 22 April 2019 (UTC)

There is nothing in the comic that's specifically about JavaScript, although the issues with NPM are a good example of what can happen more generally in other environments. But the terms "external dependencies" and "reduced overhead", plus looking for wheels on Google and the title text mentioning reinventing the vehicle to fit the wheel, to me are a clear sign that this is an analogy for software development. 172.69.226.195 02:28, 23 April 2019 (UTC)

"That one time a wheel of cheese got dangerously close to the front page" - Is this a reference to that time SpaceX launched a wheel of cheese into space as a demo payload? 172.68.255.104 08:01, 23 April 2019 (UTC)

This seems like it could be a reference to some independent game development communities, where users tend to enjoy making things "from scratch", but are often encouraged (sometimes quite aggressively) to avoid reinventing the wheel (often those exact words). I don't know if Randall is aware or involved in these communities, but it seems to fit perfectly. Probably not Douglas Hofstadter (talk) 13:35, 23 April 2019 (UTC)

This might be a python joke. Python packages on pypi are usually distributed in a file format called wheels. 162.158.183.5 19:00, 23 April 2019 (UTC)

The influence of this comic on the popularity of searching the word seems to have been minor, but noticeable: https://imgur.com/dkuBK5h 162.158.238.190 19:29, 23 April 2019 (UTC)

What I want to know is, how can we make a cheese wheel show up? Can we google bomb this image search?

Keybounce (talk) 05:08, 24 April 2019 (UTC)

I wonder, could there be a type of cheese hard enough to be viable as wheels for some kind of vehicle? There certainly exists some real hard types of cheese out there, it should not be impossible to use a cheese wheel, even if it were to be ridiculously expensive. 172.68.182.160 07:50, 24 April 2019 (UTC)

well, hardness is not necessarily the factor to look for. A very hard wheel would mean you would feel each and every of the smallest bump in the road (or would need a suspension that can handle them. Suspensions usually are more for the medium sized bumps). Also hardness often means brittleness. Imagine building a wheel of marble for your car. it wouldn't dent, but break as soon as there is a major hit on it... --Lupo (talk) 08:20, 24 April 2019 (UTC)
Change to the header text - is it related to the comic?

I have updated the header text section on the Design of xkcd.com page with the new header text out with this comic. I can see that in the "loong" explanation someone has mentioned Google Reader already, probably because of this. So I have also added a link to this change to the explanation. How relevant is Google reader for this comic, and is that actually a reason to expect the comic is about computer programming and not inventions... (As per the To include or not include section here below)? --Kynde (talk) 16:03, 24 April 2019 (UTC)

I don't feel it's relevant. Maybe something for the trivia section? Elektrizikekswerk (talk) 08:45, 25 April 2019 (UTC)

To include or not to include

I deleted a part of the explanation which I feel doesn't add anything to the explanation of the comic. This change was reverted. And since I don't want to delete them again just for them to re-appear I'll open the discussion here. In my opnion the explanation can be understood very fine without these paragraphs. I'm talking about the paragraphs 4, 5 and 6 of the current explanation. These make the explanation unnecessarily convulted. Especially since they introduce terms which need a further explanation (Among others: What's a library in this context? What is npm?) Elektrizikekswerk (talk) 13:42, 24 April 2019 (UTC)

I thought your edit was appropriate, as there's way too much information in the current explanation. If others think some of the information is helpful, then it should be significantly pared down in size rather than just reverting your edit. Ianrbibtitlht (talk) 13:55, 24 April 2019 (UTC)
I agree that there is too much on software development. There is not even any guarantee that the comic refers to this. --Kynde (talk) 13:59, 24 April 2019 (UTC)
For what it's worth, I noticed that you didn't have any bias because you hadn't contributed to the explanation before your last edit. However, the user that reverted you had previously added all of the content you removed, so they clearly thought it was necessary even before you removed it. I'd like to hear from anyone else on how they feel about the contested content. Ianrbibtitlht (talk) 14:03, 24 April 2019 (UTC)
That's why I opened this topic :) Elektrizikekswerk (talk) 14:39, 24 April 2019 (UTC)
I put it back because I think it's useful to show that there really are people/industries who behave as Beret Guy does, and who get burned by it. I could go for shifting it over into the 'trivia' section. --NotaBene (talk) 20:14, 24 April 2019 (UTC)
Which is in my opinion covered by "even if it wasn't initially designed to handle the task for which it is being used and thus may have unintended side effects or other issues." This part (or the part before that) could be generalized some more so it applies not only to code and programmers but engineering in general and it would be sufficient to explain the comic. Elektrizikekswerk (talk) 07:41, 25 April 2019 (UTC)


The comic does not expicitly or implicitly mention the automotive industry. At best, you can assume beret guy is manufacturing vehicles. 162.158.111.61 11:40, 26 April 2019 (UTC)

"that's what we attach to our vehicles"

Aircrafts are vehicles too.

I strongly suspect this article is a reference to npm and the general approach to dependency management in the contemporary Javascript community.

My last edit is me removing a near identical incomplete tag, in a near identical situation. A long multi paragraph explanation that didn’t need to be longer. If this isn’t just a coincidence I’ll delete the tag shortly, and if so, can someone explain? “That Guy from the Netherlands” (talk) 16:29, 20 May 2019 (UTC)

It would be a disaster if a color wheel came on top. SongSquare19 (talk) 08:28, 7 October 2021 (UTC)