Making Code Commenting Enjoyable

I have threatened on a couple of occasions to write code comments in character. This would be fun to write and to read. Some examples:

as Jame “Buffalo Bill” Gumb from The Silence of the Lambs:

“It implements the SQL query or else it gets the hose again. Yes, it will, Precious, won’t it? It will get the hose!”

as Neo from The Matrix:

“Whoa. Déjà vu. ” (inner loop comment)

as Ash from Army of Darkness:

“Ok you Primitive Screwheads, listen up! You see this? This… is my shell script!”

On Heroism

I have never encountered or heard of a culture that did not praise heroism. I have also never encountered a culture that did not tell heroic (and possibly exaggerated) tales of people long dead, or even people who never existed, as people need heroism in their lives more often than it occurs naturally. Humans seem to have an inherent need for heroes, whether it’s to inspire us, humble us, or make us feel that a hero might save us if we’re in trouble.

A recent example is the British Airways Boeing 777 crash landing with 100% survival rate. The cabin crew has been rightfully celebrated for their heroism, as usually happens in these cases. It’s always in our best interests to do what we can to prevent a problem like this from recurring, but the unfortunate side-effect of this is that it limits the opportunities for heroism. This is better for survival, but what effect does it have on our clear need to celebrate heroes? What would happen if humans no longer needed to be heroic because the need for it had long ago been eliminated? Would we turn more to stories of heroes, or would relatively minor acts of skill and bravery take the place of what we celebrate as heroism today? Even today, people who do nothing more than win at a game are celebrated as heroes, so perhaps this process has already begun.

Which is the better story?  1) The family dog started barking and woke up the adults of the family, who then realized that their garage had caught fire and was spreading to the rest of the house.  They were able to grab the kids and call 911 from outside.  The fire department gave the dog an honorary fire fighter medal.  2) The family smoke detectors went off and woke up the entire family, who then realized that their garage had caught fire and was spreading to the rest of the house.  They were able to grab the kids and call 911 from outside.  3) The family fire suppressant system triggered and left voicemail that someone should figure out what caught fire in the garage.

Strangely, not all cultures take logical steps to look at heroic deeds as examples of causes they need to address. There are many examples, but I worked in an environment where heroism was culturally more important than the elimination of the problems that required heroic solutions. Working long hours was more valued than being efficient; making yourself available on call 24/7 was more valued than documenting what you knew; performing a slow manual process was more valued than automating it and letting it take care of itself. There were heroes everywhere in that company, and they were beloved. Any steps that would have eliminated their chances to be heroes were dismissed for various reasons.

If you asked someone if they wanted to eliminate heroism, they’d probably balk at the very notion, but if you asked someone if they wanted to eliminate emergencies, they’d probably embrace the idea. These reactions are at odds with each other. Still, it seems that heroism is important enough to us that it will probably stay with us in some form, even if it transforms itself in a way that would look trivial to most of us today.

The Relationship Between Design and Documentation: A Heuristic

Personal experience seems to indicate that the best Designs do not need Documentation to be usable, but the worst Designs need pages and pages of Documentation. The heuristic is that the quality of a Design is inversely proportional to the length of the user Documentation.

The problem, of course, is that there’s no guarantee that a poorly-designed product has enough compensatory Documentation. Likewise, someone may have just written lots of Documentation for something that didn’t really need it.

Taken on its own, it’s not perfect, but if you are looking at adopting a product, process, or other technology, you may want to choose the one that, all else being equal, has the slimmest manual.

What Will be the Last Physical Technology Created?

Excluding software, what do you predict will be our culture’s last technological creation? This has to be something that, once made, means “game over” for our culture. It’ll break the world, but we’ll want it anyway.

When I asked this once before, a friend of mine replied, “A really good sex robot.” It should be obvious why that might make half the planet reprioritize their lives and stop showing up to work on time.

My personal view is that it’d be a replicator. While I think a culture could recover from that, it’d be tricky. You can bet that most everyone on the planet would want a replicator, and it’d literally spread virally, since your neighbor could replicate a replicator for you. People could make food, replacement parts, even larger replicators that could build bigger things like cars and houses. The replicator could make whatever you needed to stay clothed, fed, and sheltered. All you’d need is material to feed it, and we have plenty of garbage even today. In such a scenario, the most important job would quickly become that of replicator programmer (yes, I’m biased in thinking that) but finding them would be hard, since everyone’s basic needs would be met, reducing the motivation to work.

What do you think?

Bad Behavior has blocked 68 access attempts in the last 7 days.