Talk:2140: Reinvent the Wheel

Explain xkcd: It's 'cause you're dumb.
Revision as of 19:00, 23 April 2019 by (talk) (Possibly python joke)
Jump to: navigation, search

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 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: 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): It looks like a decent wheel, albeit probably a bit small for most uses 22:41, 22 April 2019 (UTC)

I looked for a cheese wheel by searching wheel but couldn't find any. there was, however, a roulette wheel 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. 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.

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. 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! -- 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. 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? 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. 19:00, 23 April 2019 (UTC)