REVIEW: The Tao of Programming, The Zen of Programming and Computer Parables: Enlightenment in the Information Age
by Geoffrey James
|You've probably already read The Tao of Programming -- as
an e-text. It's a great book, and fun to re-read every so often; but
don't buy the print version just for the illustrations. Do
buy it as a gift to a friend, though. |
The two sequels, The Zen of Programming and Computer Parables, are less well-known (probably because they were never transcribed and spread over usenet). They're also generally less entertaining, though you'll probably still find them enjoyable.
Rating: Outstanding (8/10), Average (4/10) and Average (4/10)
|Review by: Tal Cohen|
Assigning more people to a programming project does not make it end earlier. There are a many explanations for this; in fact, it is the subject of one of the most important software engineering books, Fredrick Brooks's The Mythical Man Month. But experienced programmers don't need research results to tell them about this. For them, it is a fact of life -- knowledge earned by working on software projects for years. So many programmers appreciate Geoffrey James's simple way of presenting this fact in a very short story:
A manager went to the master programmer and showed him the requirements document for a new application. The manager asked the master: "How long will it take to design this system if I assign five programmers to it?"
"It will take one year," said the master promptly.
"But we need this system immediately or even sooner! How long will it take if I assign ten programmers to it?"
The master programmer frowned. "In that case, it will take two years."
"And what if I assign a hundred programmers to it?"
The master programmer shrugged. "Then the design will never be completed," he said.
The simple, humoristic representation of experienced software developers as "masters" and inexperienced ones as "apprentices", the characterization of managers as unintelligent, sometimes plain stupid people, combined with the simple wisdom of the text is just part of what makes The Tao of Programming such am amusing booklet for programmers. I think many readers will find that they are reminded of the Dilbert comic strips.
Thus spake the master programmer:
"You can demonstrate a program for an executive, but you can't make him computer literate."
The stories are presented with an aura of oriental wisdom; some of them are paraphrases of famous oriental stories. For example, the point of the story in which Grand Master Turing dreams that he is a machine (and wakes up wondering if he is really Turing, or a machine dreaming that it is Turing) will probably be missed by those not familiar with the story about Confucius and the butterfly.
The Tao of Programming contains nine "books" -- each with wisdom about a different area, such as design, coding, maintenance, and so on. All in all, there are about fifty short stories like the two quoted above, and it will probably make a great gift to any programmer. If you haven't read it yet, you should probably buy yourself this gift. In the computer programmers' Humor Hall of Fame, this book resides up there with canons such as the Jargon file ("The Hacker's Dictionary").
The Zen of Programming was published by James a year after The Tao, and it contains numerous short Koan-like stories of the same spirit -- the kind of stories only computer nerds could possibly enjoy. However, much like the stories in the third book Computer Parables: Enlightenment in the Information Age, the stories in The Zen of Programming lack the special, naive magic that made the first book so enjoyable. The stories in these two books don't try just to entertain -- they try to teach a lesson, and often fail miserably. And yet some stories (especially in Computer Parables) do hit the nail on the head. Consider, for example, the following story:
| A programmer once built a vast database
containing all the literature, facts, figures, and data in the
world. The he built an advanced querying system that linked that
knowledge together, allowing him to wander through the database at
will. Satisfied and pleased, he sat down before his computer to
enjoy the fruits of his labor.
After three minutes, the programmer had a headache. After three hours, the programmer felt ill. After three days, the programmer destroyed his database. When asked why, he replied: "That system put the world at my fingertips. I could go anywhere, see anything. Because I was no longer limited by external conditions, I had no excuse for not knowing everything there is to know. I could neither sleep nor eat. All I could do was wander through the database. Now I can rest."
The amazing thing is that this piece was published years before the World Wide Web came to be; it is even more amazing if you consider the fact that it is titled "The Navigator".
Other stories from Computer Parables that had a similar surprising (or should I say sobering?) effect, at least for me, include "The Computer Pornographer" and "The Museum". But apart from these rare gems, the two sequels generally do not stand up to the quality of the first.
For more information about these books, please visit http://www.forum2.org/tal/books/tao.html.
For additional book reviews, please visit http://www.forum2.org/tal/books.