(This is a snapshot of my old weblog. New posts and selected republished essays can be found at raganwald.com.)

Wednesday, December 05, 2007
  Is software about grades or ideas?

Joel Spolsky yesterday:
The geeks want to solve the problem automatically, using software. They propose things like unit tests, test driven development, automated testing, dynamic logic and other ways to “prove” that a program is bug-free.

The suits aren’t really aware of the problem. They couldn’t care less if the software is buggy, as long as people are buying it.

And today:

One of the reasons Schank hated undergrads so much was that they were obsessed with grades. He wanted to talk about whether computers could think and all undergrads wanted to talk about was why their paper got a B instead of an A.
—Joel Spolsky, Talk at Yale

Do I really have to expand this into an essay? How about this joke:

A fellow is in Vegas to do some climbing at Red Rocks. He goes into a bar, it’s quiet, he leans over to the bartender. “Hey!” he calls out, “Wanna hear a joke about programmers?”

The bartender frowns. “I’m a programmer,” the bartender says flatly. He points at a big guy playing pool in the corner, the guy looks like he twists re-bar into Christmas ornaments in his spare time. “Schank over there, he’s a computer science prof. And over there, Lois and Maude?” Our guy looks, there’re two women the size of tanks with the jar-head haircuts to match. “Lois and Maude are programmers, too.”

The bartender leans forward menacingly. “Are you sure you want to tell us your little joke?”

Our man finishes his drink, slaps down the money, and eases out off his stool. “No, best not to bother,” he says. The bartender nods. Our guy speaks again.

“I hate it when I have to repeat the punch line.”

Comments on “Is software about grades or ideas?:
Gee, thanks. Now I have to clean the soda off my keyboard. :P
Love your blog but much like good code, a joke should only contain what's absolutely needed to get the job done:


pay close attention to page 3
Sorry, I don't get the joke at all. Maybe I'm dense.

Help me understand. What does that have to do with Joel's quotes?
Well, I hope it's my limited English that stops me from understanding this joke; and not that I'm completely retarded.
I don't really get the joke either. I suppose it's all about programmers like that being a joke in themselves, but I'm not really sure about that. Reginald, would you be so kind to explain to non-english native speakers?
The point of the joke is that the guy won't tell the joke because the programmers wouldn't get it, and he'd have to repeat the punchline. (It's funny because in real life you'd expect him to be more worried about getting a pummelling!)

It's about programmers not being able to see things from anyone else's POV, and hence not able to see jokes about programmers as funny.

I don't know if you question is some elaborate set up to embarrass me publicly but I'll trust you just this one time.

The link was to help you correct a poorly formed joke. Don't waste your time getting to the punchline. There's way too many extraneous details given. It doesn't matter that he's in Vegas to go rock climbing climbing or what everyone's gestures are.

A guy goes into a bar, goes up to the burly bartender and says, "Hey! Wanna hear a joke about programmers?"

The bartender frowns. "I'm a programmer. The bouncer over there is also a programmer, and that woman arm-wrestling him is a computer science professor. Are you sure you want to tell us your little joke?"

"No, best not to. I hate it when I have to repeat the punch line."

I hope you know that I'm not complaining. (I don't read your blog every day for the jokes!) Just instructing.
bob wrote "Just instructing."

I am no expert at comic timing, but it seems to be more complicated than you believe. For me, at least, the original version of the joke was funnier than yours. And I doubt that I'm the only person in the target audience for violations of your rule; consider published jokes like Shah Guido G. As best I recall that story wasn't terribly funny in the original, but I don't think paring it down to 100 words would've made it funnier.

Perhaps part of what makes actual readers laugh in the real world is not just jokesters doing honor to The Principles Of Humorous Storytelling that you teach us to recognize, but readers first spontaneously learning to recognize various principles of humorous storytelling, then sometimes finding it funny when jokesters subversively violate them.

(Or perhaps your solemn instruction is part of a deeper jest and my failure to get it makes the jest on me. Speaking of published examples of sins against storytelling timing, I remember that I didn't pick up on "the fit hit the Shan" even reading it more than once, so that explanation seems entirely possible...)
I believe, it's just a matter of focusing on the right thing.

And programmers, no matter how clever they are, often don't

Thanks for your writing,
The tool need only be good enough to get the job done. 51% is the perfect grade; you've expended the least amount of effort and still managed to pass. So, its all really about finding more time to spend in a bar drinking beer, shooting pool and listening to annoying people telling jokes about your profession :-)

It would be worse if we were lawyers...

Then again I could be way off :-)

<< Home
Reg Braithwaite

Recent Writing
Homoiconic Technical Writing / raganwald.posterous.com

What I‘ve Learned From Failure / Kestrels, Quirky Birds, and Hopeless Egocentricity

rewrite_rails / andand / unfold.rb / string_to_proc.rb / dsl_and_let.rb / comprehension.rb / lazy_lists.rb

IS-STRICTLY-EQUIVALENT-TO-A / Spaghetti-Western Coding / Golf is a good program spoiled / Programming conventions as signals / Not all functions should be object methods

The Not So Big Software Design / Writing programs for people to read / Why Why Functional Programming Matters Matters / But Y would I want to do a thing like this?

The single most important thing you must do to improve your programming career / The Naïve Approach to Hiring People / No Disrespect / Take control of your interview / Three tips for getting a job through a recruiter / My favourite interview question

Exception Handling in Software Development / What if powerful languages and idioms only work for small teams? / Bricks / Which theory fits the evidence? / Still failing, still learning / What I’ve learned from failure

The unary ampersand in Ruby / (1..100).inject(&:+) / The challenge of teaching yourself a programming language / The significance of the meta-circular interpreter / Block-Structured Javascript / Haskell, Ruby and Infinity / Closures and Higher-Order Functions

Why Apple is more expensive than Amazon / Why we are the biggest obstacles to our own growth / Is software the documentation of business process mistakes? / We have lost control of the apparatus / What I’ve Learned From Sales I, II, III

The Narcissism of Small Code Differences / Billy Martin’s Technique for Managing his Manager / Three stories about The Tao / Programming Language Stories / Why You Need a Degree to Work For BigCo

06/04 / 07/04 / 08/04 / 09/04 / 10/04 / 11/04 / 12/04 / 01/05 / 02/05 / 03/05 / 04/05 / 06/05 / 07/05 / 08/05 / 09/05 / 10/05 / 11/05 / 01/06 / 02/06 / 03/06 / 04/06 / 05/06 / 06/06 / 07/06 / 08/06 / 09/06 / 10/06 / 11/06 / 12/06 / 01/07 / 02/07 / 03/07 / 04/07 / 05/07 / 06/07 / 07/07 / 08/07 / 09/07 / 10/07 / 11/07 / 12/07 / 01/08 / 02/08 / 03/08 / 04/08 / 05/08 / 06/08 / 07/08 /