The true origin of "foo" and "bar" as canonical programming conventions
One thing that's perplexed, entertained and escaped me for years as a professional developer has been the reason why so many people in the programming community use “Foo” and “Bar” as their examples when showing how to do something. I've seen this de facto convention applied mainly towards explaining object-oriented principles, but it's gotten so popular, it's right up there with “Hello world!” as a ubiquitous sample in all forms of writing software you just can't get away from (class names, variable assignment, database username/password combinations, temporary filenames, security credentials, etc.).
I'm sure there's a decent reason for why someone out there decided to start using those particular words, but here's my theory: the big-budget 1989 action movie “Tango and Cash”. In the film, actor Kurt Russell says something along the lines of describing a less-than-desirable situation he and Sylvester Stallone are in as “FUBAR”, being an acronym for “Fucked Up Beyond All Repair”.
How this came to be so widely used in programming circles I'm not sure. It's not kept me up nights, but the phrase stuck with me through my youth (plus the fact that I worked at Blockbuster kept it in constant mental rotation). You can imagine my amusement when I got into development work and found it used liberally in book after book, tutorial after tutorial, across platforms and vendors. A UNIX training course I attended years ago used this for each and every example presented, without deviation, so much that at one point I thought Foo and Bar were either commands, directories or daemons for SunOS. Heck, I've even used it a couple of times myself.
I'm sure someone out there has a valid explanation, but this has always stuck me as funny. If you know the answer, do drop me a line...I'd love to find out once and for all.