Wednesday, June 18, 2008

An Infinite Number of Cats on an Infinite Number of Keyboards and the Works of John Carmack

If we place an infinite number of cats on an infinite number of keyboards how long will it take them to reproduce the works of John Carmack?*

How long before the cats have reproduced Doom and Quake? Will some lively Russian Blue turn out Spear of Destiny in just a few short years?

With the time it will take the cats to get their programming tools in order, the cats have zero chance of even managing Commander Keen. I like cats, but faced with the uphill battle of going from non-programmer to programmer I'd say the cats are toast. Heck, I'd give them over a century to get as far as "Hello, World!" from K&R C.

What chance does that give a human non-programmer? Assuming they manipulate a mouse and keyboard with more control than a cat, not quiteso bad.

10% Inspiration, 270% Perspiration

The most important characteristic is perseverance. Perseverance in the face of confusing messages, obscure software failures, oblique semantics, and I'm not even talking about the programmer's own programs! I'm talking about getting the development tools installed. Once they start doing their own programs they'll need even more sticktoitiveness.

The Cat's Advantage

The cat's advantage is that it does not allow its mood to be affected by strange error messages. It also does not allow a long list of errors to faze it. Humans on keyboards tend to take these personally, however, as if the computer is commenting on their personal grooming or appearance. "Undeclared identifier error in line 46. And is that your feet or did a fish die under the table?"

Cats are unflappable. There are no errors. Either they meant to do that, or it never happened.

"Of course I misspelled that keyword. It was a statement. If you're not mature enough to understand why I did it, there's nothing I can do about it."

(Edit, recompile.)

"What error? There's no error. See? The compiler log shows 0 errors, 0 warnings. I don't know what you're talking about."

Be The Cat

That's a lesson in programming for humans.

* (An oeuvre which, thankfully, continues to grow.)

No comments:

Post a Comment