__O__ne morning in September 1944, the Harvard Mark I - a precursor of modern computers - suddenly malfunctioned. Engineers spent hours investigating the problem, only to discover a moth fried to a relay. Thus, according to Daniel Kohanski, a computer programmer with Bank of America, the ubiquitous catchphrases "there's a bug in the machine" and "debugging" entered the computer-programming lexicon.
This historical tidbit resides at the ideological center of The Philosophical Programmer, Kohanski's ruminations on the art and exercise of programming. The main thrust of the book is that in their 40-year history, computer programmers have failed to fully understand their trade, an ignorance that has had definite and serious ramifications in the real world. A bank teller enters none into a terminal, and suddenly several thousand checks are sent to None, Wisconsin. Or a weaponry system mistakes a passenger jet for an enemy. These are just two of the "moths" that have found their way into computer code over the years due largely, Kohanski accuses, to sloppy writing.
As its title suggests, this book is intended to provide "philosophical" insight, and Kohanski does begin with chapters on traditional philosophical questions of aesthetics and ethics. The idea that an aesthetics of programming might exist is intriguing. Unfortunately, the author's thoughts on this never gel beyond the simple adjuration to create "efficient" programs. Likewise, a chapter on ethics presents rather hackneyed views on privacy issues, viruses, and the computer as an alienating force - topics often better explored elsewhere.
Kohanski is at his best when he's analyzing actual programming languages. In a long middle section he distills the trade's history into its most notable developments. And yet, as intellectually impressive as object-oriented languages like C++ and Java are, Kohanski observes, all synthetic languages lack the ineffability or vagueness that characterize how humans actually communicate and think. The cultural and historical nuances that have shaped our brains are missing from the world of "mathematicized information." "Fuzzy logic" programs are a step in the right direction, says Kohanski, but, judging from his work, it seems the dilemma can never be fully addressed by better programs. That's a job for better programmers.
STREET CRED
Speech Recognition - To Go Dutch Hitmeister
When the Background Eclipses the Game
Binary Zen