Paul's Internet Landfill/ 2023/ Boolean Jokes Are Not Funny

Boolean Jokes Are Not Funny

"Should I use tar or zip to get the files to you?"


"Would you prefer falafel or pizza for dinner?"


Dear computer people: just stop. Yes I know you are being clever. Yes I know you are trying to demonstrate you are smarter than those plebes who speak English because you know computers. I don't care. This joke is tired, it is unfunny, and it is profoundly unhelpful. It makes me irrationally angry, and if you pull it on me then don't expect a polite response.

For those of you who are not computer people, here's the joke: the word "or" in the English language is ambiguous! Isn't that hilarious?

When normal people use the word "or" in sentences like the above, they generally intend selection. The first question could be rephrased as: "I have the option of sending you files using tar or zip. Which would you prefer?"

In computer languages (and boolean logic) the word "or" is an operator that produces a boolean -- a value that is true or false. A statement like "I would prefer falafel for dinner" might be true or false. A statement like "I would prefer pizza for dinner" might be true or false. If I put an "or" between those statements, then the compound statment "(I would prefer falafel for dinner) OR (I would prefer pizza for dinner)" can be true in three ways:

The joke (such as it is) is that if I answer "yes" to your question then you still do not know whether I would prefer falafel or pizza for dinner, even though I provided an answer. Hilarious, right?

No. Not hilarious. This is profoundly unhelpful. Whenever somebody pulls this boolean joke nonsense on me I am trying to get some information, and the person who administers the joke demonstrates that they care more about wasting my energy with a tired cliché than about giving me that information. It is disrespectful and unhelpful. Expecting me to be a programmer and rephrase my question to get the ACTUAL answer is even more disrespectful. You are not a computer program. You are a human being and you completely understand my request. If you are actually not willing to give me an answer then the answer is "I don't want to answer that question," not "yes".

I am not an instructor any more, but I learned this lesson early. Being enthusiastic is important as an instructor (in fact I think it is far more important than tenured professors give it credit for), and there are many ways to express that enthusiasm. Being funny is one of those ways, and it is one I often turned to. But there is a hard line we must draw. If faced with the choice between delivering a joke and confusing people vs conveying information and not being funny, we must ALWAYS choose to convey information. Otherwise we are not doing our job.

Another common culprit here is explaining the Halting Problem. Everybody uses utterly confusing language like "the problem must be true because it is false, and it is false because it is true!" because they think they are clever. But they aren't clever. I did not understand the Halting Problem for years and years because nobody bothered to explain that it is really about different sizes of infinities, and that the "reverse the output" trick is just about finding a function that is not captured by the premise. Dear second/third year computer science instructors: just stop. Instead of using your clever word tricks, explain things clearly. That's your job.

You might think that if you were a comedian and not a computer science instructor you could do the opposite, that the joke could take priority over the information. That's also false. If your joke leaves your audience feeling confused because they cannot follow what you are saying, then you are making the wrong joke, or you are phrasing it poorly.

Another common culprit are the GNU people, who love using ambiguous language in their concepts. "It's not free as in beer! It's free as in freedom!" If your choice of words is ambigious then you are using the wrong words. Stop it. Use clear language.

So: stop it. Just stop. You are not being clever. You are not being witty. You are not demonstating you are smarter than other people. You are merely behaving like a jerk. Just answer the question, already.