Categories

Sponsors

Tag: Software Development

Single combat is a wicked problem. It is a problem that resists a straightforward explanation. It can only be understood after it is solved, and only to the extent that it has been solved.

We tame a wicked problem by defining it clearly. Thus, in the field of software development, we often plan to “build one (solution) to throw away.” The product of this effort is not intended to be a final solution, but a restatement of the original problem in more concrete terms.

The benefit of such throwaway prototypes is that we do not become too invested in refining the right solution to the wrong problem. Solving the correct problem is the difference between a successful engineering project and a piece of abstract art.

Science is what we understand well enough to explain to a computer. Art is everything else we do.
~ Donald Knuth

You’ll never appreciate the true complexity of a mundane, everyday task, until you’ve tried explaining it to a computer.

Contrary to popular perception, computers are not smart. Actually, they are stone dumb. Given a lengthy set of precise instructions, your computer can follow them well enough, most of the time, but when asked to exhibit the tiniest bit of reasoning or creativity, your cutting-edge laptop PC is helpless and hopeless. Ditto for the Mac. Sorry, Linux won’t help either.

Consider the simple act of making a peanut butter and jelly sandwich. You can teach the average six year-old child this skill in a few minutes; writing the equivalent instructions for a general-purpose computer could literally take weeks or months of effort.

Knowing all this, I was amazed by the concept and promise of Spike TV’s new show, Deadliest Warrior:

In Los Angeles, CA, we’ve created a high-tech fight club, with scientists, martial arts experts, and lots and lots of weapons. It’s all here to create a virtual battle between two legendary warriors. We’ll test their weapons and fighting techniques on high-tech dummies—stand-ins for human victims. Based on this data, a battle simulation program will stage a true-to-life fight to the death. The winner will be The Deadliest Warrior.

As a professional software developer, I often ponder the similarities and correspondences between programming and martial arts. A style of martial arts is ultimately just an algorithm—executed in wetware rather than with integrated computer circuits—and there are many interesting correlations to be found between these two outwardly distinct disciplines.

Version History

Kung Fu version 1.0 was released at the dawn of human history, and it was truly a killer app. Though it contained only two basic features—kill people and kill animals—it was useful in solving the problems of the prehistoric age.

Kung Fu 1.0 provided end-users with critical advantages in the constant struggle for food, and an opportunity to reproduce. By leveraging bleeding-edge innovations in Rock and Stick technology, early adopters were able to live to the ripe old age of 30 years, and perhaps even become grandparents. Continue reading Kung Fu Version 2.0