Author: Andy Oram and Greg Wilson
Publisher: O'Reilly, 2008
Aimed at: Anyone who has an interest in programming
Pros: A novel way to showcase good code
Cons: Not all the examples rise to the challenge
Reviewed by: Mike James
This isn’t a book you have to read – but if you are a programmer at almost any skill level you will find it deeply enjoyable. It’s a collection of 30 essays about a piece of code that each invited author regards as the most beautiful they know. It’s a simple idea but one that allows a group of programmers to write about aspects of programming that we very rarely talk about. As programmers we discuss our current problems, extol the virtues of one language over another or describe some particularly messy bug that we have managed to solve but we very rarely present each other with code we consider good, let alone beautify. Unfortunately it is a difficult topic and in this case the authors don’t really rise to the challenge. We have a range of different styles and different languages used to present the principles of good code and this makes it harder to appreciate. If code is beautiful then it will be so when expressed in a pseudo code we can all understand. Another problem is that the authors don’t really tackle the problem of describing why the code they present in evidence is beautiful. They present it and say “see this code is beautiful” and if you don’t then you are left out in the cold without any real way to make a connection to what the author saw in it. This said there are some gems and they are mostly from the authors that have a track record in expressing programming ideas – Brian Kernighan, Jon Bently, Charles Petzold, Brian Hayes and so on. However even in these essays you might well need to follow up the references to web articles or academic papers quoted. This makes the book far from self contained.
There is also the niggling doubt that perhaps the book fosters the idea that beautiful code is the invention of an inspired idiosyncratic genius rather than the result of a careful application of practice and principle – but why spoil an nice idea even if it isn’t executed as well as it might be. You will almost certainly find something to interest you among the essays, but be prepared to skip large chunks. There is clearly scope for another book under this title but with a little more editorial control and direction aimed at teasing out what programmers actually think about the code they create.