353: Python

Explain xkcd: It's 'cause you're dumb.
Revision as of 21:04, 14 December 2012 by SlashMe (talk | contribs) (expanding, adding trivia, rm incomplete template)
Jump to: navigation, search
I wrote 20 short programs in Python yesterday.  It was wonderful.  Perl, I'm leaving you.
Title text: I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you.


Python is a high-level programming language with a heavily simplified syntax (demonstrated here with the "Hello, world!" program).

Dynamic typing means that you do not have to declare a type for any numbers you enter (for example, "short," "float"); the Python program would automatically know how much space to assign.

Whitespace refers to all invisible text characters, like a space or a tab. In most programming languages, for example, C++, levels inside a program need to be set off by brackets while whitespace is irrelevant. By contrast, in Python you set a level simply by indenting the code.

Methods, functions and constants in Python are packed in so called modules. To use a module, you would use import MODULE. There are lots of ready-to-use modules available. The comic references this by stating that in order to fly it would suffice to import the antigravity module.

His sampling everything in the kitchen cabinet was meant to compare the effects of Python with the hallucinogenic effects of drugs.

Perl is another programming language. Interestingly, whereas Perl has an adage about there being more than one way to code for a solution, Python directly addresses this by insisting on only one way to code for a solution.


[ Guy 1 is talking to Guy 2, who is floating in the sky ]
Guy 1: You're flying! How?
Guy 2: Python!
Guy 2: I learned it last night! Everything is so simple!
Guy 2: Hello world is just 'print "Hello, World!" '
Guy 1: I dunno... Dynamic typing? Whitespace?
Guy 2: Come join us! Programming is fun again! It's a whole new world up here!
Guy 1: But how are you flying?
Guy 2: I just typed 'import antigravity'
Guy 1: That's it?
Guy 2: ...I also sampled everything in the medicine cabinet for comparison.
Guy 2: But i think this is the python.


In response to this comic, the Python developers implemented the module antigravity in version 3. When you import it, the webbrowser will open the comic. Also, the module contains a geohashing function.

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


It is necessary for both Cueballs to sample the medicine cabinet in order for this to be a hallucination. It was probably python. (talk) (please sign your comments with ~~~~)

Or maybe there is just one Cueball - the one on the ground who is hallucinating - because he tried everything...? ;-) Kynde (talk) 20:45, 3 May 2014 (UTC)

'I also sampled everything in the medicine cabinet for comparison' is a possible reference to George's Marvellous Medicine, the children's book written by Roald Dahl, wherein a combination of medicines and household materials produces fantastical effects. Quetzalcoatl (talk) 14:31, 10 February 2014 (UTC)

I think it's related to the invention of photographs, but I'm not sure 06:19, 3 January 2015 (UTC)

Woah guys, antigravity is a real module in Python! I was looking around the lib folder, trying to figure out how to put a module into it, and there it was - antigravity.py . It just sends your browser to the comic. -- 22:07, 13 December 2014 (UTC)

Yeah, that's already covered in the Trivia section ;-) --SlashMe (talk) 23:22, 14 December 2014 (UTC)

The implication is that in Python many otherwise amazing things become easily possible after a simple import statement and/or that there is a module for almost anything you'd want to do no matter how difficult. 16:30, 29 April 2015 (UTC)

The explanation was wrong about many things. Python doesn't have a heavily-simplified syntax--it's about as simple as Perl (and a lot less simple than Lisp); the difference is that it's designed first and foremost to be consistent, easy to read, and easy to remember, even at the cost of occasionally being more verbose or rigid. Its syntax doesn't generally reduce complicated things to a single word; it does allow many complicated things that might take 20 statements in C to be reduced to a single statement, but that's because it's high-level (again, like Perl), not because of its syntax. Dynamic typing has nothing to do with declaring the types of values, much less specifically numeric values, and it has nothing to do with Python automatically knowing how much space to reserve for a value--in fact, it's the opposite; C knows to reserve 4 bytes for an int variable at compile time, whereas Python has no idea what kind of value you're going to put into the variable until runtime. And "like in Visual Basic or JavaScript" is very confused--Visual Basic is statically typed, while JavaScript is dynamically typed, just like Python.

Also, the explanation didn't explain why Cueball's friend was reticent to use dynamic typing or significant whitespace, or what the point of importing modules is.

So I rewrote most of it. 20:55, 15 September 2015 (UTC)