1960: Code Golf

Explain xkcd: It's 'cause you're dumb.
Revision as of 16:45, 26 February 2018 by (talk) (Explanation)
Jump to: navigation, search
Code Golf
I also enjoy Reverse Regular Golf. I've been playing for years all across the country and I'm still on the first hole.
Title text: I also enjoy Reverse Regular Golf. I've been playing for years all across the country and I'm still on the first hole.


Ambox notice.png This explanation may be incomplete or incorrect: Created by a CODE GOLFER - Please change this comment when editing this page. Do NOT delete this tag too soon.
If you can address this issue, please edit the page! Thanks.

This comic refers to code golf, the idea of using as few characters as possible to achieve your code goal, similar to how in regular golf, the goal is to get to the end with as few strokes as possible. Reverse code golf would be to use as many characters as possible, which he does in the code example with overly long function names that are the beginning lines of Herman Melville's notoriously long-winded whaling novel Moby-Dick.

Code golf is a game among programmers where contestants try to solve a given problem or challenge with as little code as possible (usually decided by measuring the program in bytes). In the comic's version, Reverse Code Golf, the object is to complete some mundane task in as many bytes as possible, hence the ridiculously long method and variable names.

Additionally, the first two functions defined implement “zero” and “successor”, the two basic operations of Peano arithmetic. Presumably, the programmer will next implement natural number addition, then integers, then whichever branches of mathematics the original problem needs, all from scratch.

The title text refers to the concept of "Reverse Golf", a variation on golf where the aim is to take as many strokes as possible to get the ball in the hole.

Interestingly, the comic ends with an unmatched left parenthesis, something which might be intended to create unresolved tension.


Ambox notice.png This transcript is incomplete. Please help editing it! Thanks.
[There is code written as text in a black box:]
define callMeIshmaelSomeYearsAgoNeverMindHowLongPrecisely():
return 0
define havingLittleOrNoMoneyInMyPurseAndNothingParticular(toInterestMeOnShoreIThoughtIWouldSail):
return 1+toInterestMeOnShoreIThoughtIWouldSail
define aLittleAndSeeTheWateryPartOfTheWorld(
[Caption under the black box:]
My hobby: Reverse Code Golf

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


What's the programming language? It seems to me like a special reverse golf variant of Python, where def is replaced by define, just to make it longer. Or is there a real language with that syntax? -- 08:40, 26 February 2018 (UTC)

Lisp/some derivatives (I'm most familiar with scheme) use define<define> as does Slate, however both have a different syntax. Most likely, this is just pseudo-code. Baldrickk (talk) 09:59, 26 February 2018 (UTC)

Definitely going to have to include a link to the actual longest language: Unary, which is literally just a certain length of 1s. No one actually writes in it: you write in another language and then it gets converted. Trlkly (talk) 10:48, 26 February 2018 (UTC)

You could make a longer programming language by representing "1" with some longer string; perhaps the entire text of Moby Dick. And now the file size can be arbitrarily big. 16:45, 26 February 2018 (UTC)
Though this idea is still quite compressible. It might be better (?) to make a language where the file size cannot be easily significantly compressed. 16:48, 26 February 2018 (UTC)

This might be directed at a code golfing challenge currently taking place: https://codegolf.stackexchange.com/questions/152856/write-moby-dick-approximately. The goal is to write a program that outputs a text, that is as closly as possible to moby dick, while no containing it, and of course beeing as small as possible. 13:04, 26 February 2018 (UTC)

Not sure why JSFuck is included in the explanation. Not sure how it really has any relevance here as it is not mentioned in the text and is not the programming language being used by Randall in the comic. 13:18, 26 February 2018 (UTC)

agreed, JSFuck is not relevant in the explanation. moved it to the discussion (see below) Thawn (talk) 13:56, 26 February 2018 (UTC)
Instead of Python, one could use JSFuck though, which is valid JavaScript code - but written with only six different characters. Even mundane variable names like `LowestDenominator` will take up hundreds, if not thousands, of bytes in JSFuck. -- Comment Police (talk) (please sign your comments with ~~~~)
I added it because JSFuck allows you to write you simple and useful tasks with zillions of bytes, each of which is needed for the programm to run correctly. It's the ultimate Reverse Coding Golf.-- 13:53, 27 February 2018 (UTC)

Off Topic: I just realized that statistical thermodynamics is nothing else than reverse molecule golf: The entropy of a given system is equal to the maximum score you can achieve in reverse molecule golf. Thawn (talk) 13:56, 26 February 2018 (UTC)

Seems like Java programmers play this game all the time. 20:13, 26 February 2018 (UTC)

Someone made everyone's comments monospaced. Please fix this. 14:24, 26 February 2018 (UTC)

Fixed 15:52, 26 February 2018 (UTC)
They just wanted to play reverse comments golf with the comments section by making the comments take as much space as possible. 15:56, 26 February 2018 (UTC)

This is called Code Bowling.

I would like to point out that there may be a ReCaptcha site shutdown? It will occur on the 1st of March (maybe). QATEKLYXM

Is the explanation thinking of miniature golf when it mentions a hedge or border and the need for a ramp? In actual golf you can easily hit the ball through the air with almost every single club...and just as easily hit it off of the golf course. [[[Special:Contributions/|]] 15:11, 27 February 2018 (UTC)]

Curious Georges also likes Reverse Regular Golf! 02:18, 28 February 2018 (UTC)

I found this xkcd confusing because there appears to be no obvious limiting principal. The code in the panel is written verbosely, but it could easily be a word longer, a paragraph longer, a page longer, a chapter longer, an entire book longer. Nor is skill (or chance!) particularly required to do such a thing [I suppose in "blinded reverse code golf" the question might be to guess how much length your opponents would bother to express and then to top that]. The result is I feel confused. Maybe my standards for humor are too high, but maybe, also, I'm just missing something here? JohnHawkinson (talk) 12:02, 28 February 2018 (UTC)

+1 Elektrizikekswerk (talk) 12:07, 28 February 2018 (UTC)
I think that is the joke: what a stupidly bad game reverse code golf is. ditto for reverse regular golf. Or a dumb excuse for writing unreasonably long code/playing with a golfball in random settings User:00N8

No mention of The International Obfuscated C Code Contest? It's about as close to reverse code golf as there is. 14:20, 28 February 2018 (UTC)

If Randall plays Reverse Golf while playing out-of-bounds, and that means he's getting at least one penalty stroke for every regular, out-of-bounds stroke, it seems to me he perfectly well understood the rules of both golf and reverse golf. He's gaining strokes at twice the regular speed. 15:49, 28 February 2018 (UTC)

this guy gets it 00N8

I was so confused by this comic it took me a few minutes to figure out "This was the first comic in the My Hobby series for over a year" is supposed to read "in over a year" 05:43, 23 March 2018 (UTC)

Code golf is the attempt to use as few *key-strokes* as possible, that makes the analogy with regular golf strokes clearer. (currently reads "Code golf is the attempt to use as few characters as possible") 15:16, 19 September 2018 (UTC)

To me, "reverse regular golf" is starting with the ball in the hole, and you need to get it out and to the starting position in as little hits as possible. the second part of the title text is explained by how its very difficult to get the club into the whole and hit the ball out of it. maybe add this to explanation? 11:53, 14 September 2021 (UTC)Bumpf