The point of the comic is to make fun of programmers who take the idea that you should never reinvent the wheel too seriously. When these people have a problem, they may Google to find a solution to that problem, and when they find a piece of online code, they use it in their own code, 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.
Another way that programmers may go too far in avoiding reinventing the wheel is in using external dependencies. It can be valuable to use external libraries, especially for applications where certain tasks have strange edge cases that a 'reinvention' is likely to miss or require lots of development effort to correctly implement (like time). However, using someone else's code means taking on the risk of security vulnerabilities, and when the library is updated on live installations, the user also takes on the risk that the library might become unavailable or otherwise break. In this case, Beret Guy's company updates their wheel "library" on a daily basis from Google's image search. Google is unlikely to shut down a core search product, but they might change the API that Beret Guy's company uses (unless he's just going to their website himself), and they have been known to shut down projects that people like, such as Google Reader. On the day this comic was released, Randall changed the Header text of xkcd, adding a reference to Google Reader.
The popular programming language "Python" manages external dependencies with packages called "wheels" which are "published to the cheese shop", which may or may not be an intended reference.
In any event, Beret Guy is in effect reinventing the wheel by doing a new search for wheels on Google Images every day. If the wheel he finds on Google Images on a given day is suitable for his company's needs, the company would likely be better off using the same wheel on succeeding days (unless circumstances change which make that unfeasible), compared to trying to doing a new search for wheels every day.
The title text indicates that Beret Guy is currently using bicycle wheels for his vehicles, requiring his vehicles to be lighter as bicycle wheels cannot carry a lot of weight. He says this "reduce[s] overhead", which is both literally true, that his vehicle weighs less, and refers to the usual figurative desire of reducing overhead costs of development by using external libraries. Finally, the narrator (supposedly Beret Guy) explains that at one point a wheel of cheese was near the top of the Google images search. If it had reached the top, it would have been disastrous as a wheel of cheese is completely unsuited for use as a vehicle's wheel.
On the day the comic was released a bicycle wheel came up first when searching for "wheel", see image in the Trivia section below.
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 220.127.116.11 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 18.104.22.168 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 22.214.171.124 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.126.96.36.199 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. 188.8.131.52
- 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. 184.108.40.206 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! --220.127.116.11 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)
"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? 18.104.22.168 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. 22.214.171.124 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 126.96.36.199 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.
188.8.131.52 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.
184.108.40.206 11:40, 26 April 2019 (UTC)
- "that's what we attach to our vehicles"
Aircrafts are vehicles too.
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)