# Difference between revisions of "1960: Code Golf"

 Code Golf 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.

## Explanation

 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 write a computer program with a certain function, 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 write a given program using as many characters as possible. Randall does this in the code example using overly long function names that are the beginning lines of Herman Melville's notoriously long-winded whaling novel Moby-Dick.

Note that it's not actually possible to produce code using "as many characters as possible". It would be a trivial task to make the given program longer, e.g. by using longer names, or by inserting useless code or simply comments.

The code example is written in a programming language that looks similar to Python, but with the keyword “define” instead of “def” to define functions. Python was previously featured in comic 353: Python.

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. The title text states that he has been playing for years, across the country, this implies that the distance traveled with the ball would have been quite large. This implies a rather incomplete understanding of the rules of golf as this suggests the ball is being played out of bounds.

In golf, "Out of Bounds" is defined as being beyond the boundaries of the golf course or any part of the course so marked by the committee in charge of the golf course.

If a ball is out of bounds, the player must play a ball, under penalty of one stroke, as nearly as possible at the spot from which the original ball was last played. If the player does not play the penalty shot from the original spot the ball was played this can lead to even more stroke penalties or a disqualification from the match.

So the reverse round of golf that is being played will have accumulated a large number of penalty strokes or the round was long since been ruled as a DQ within the rules provided by the USGA.

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

## Transcript

[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

# Discussion

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? --172.68.110.106 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. 198.41.230.100 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.172.68.25.106 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.141.101.105.150 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. 108.162.216.94 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.--172.68.50.178 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.162.158.234.100 20:13, 26 February 2018 (UTC)

Fixed 162.158.155.26 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. 162.158.126.76 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/172.69.62.64|172.69.62.64]] 15:11, 27 February 2018 (UTC)]

Curious Georges also likes Reverse Regular Golf! 108.162.237.232 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. 172.68.255.158 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. 141.101.104.17 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" 108.162.221.95 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") 162.158.154.103 15:16, 19 September 2018 (UTC)