||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Programming, code, software development
Title: Beautiful Code
Author: Andy Oram and Greg Wilson
Verdict: Consistently interesting and highly readable.
Beautiful code? Well… we've all seen plenty of ugly code in our time. If we're being honest we'd probably even admit to have written some dog-ugly code as well at one time or other (no doubt with every intention to refactor it later so that it's a bit less brutally repulsive). But code that's beautiful? What does that even mean? Code that's simple and easy to understand? Code that expresses an elegant and counter-intuitive algorithm? Code that's terse, powerful and too clever for mere mortals to comprehend?
Of course there's no one definition of beauty in any sphere of life, and software's no different to the rest of the world in this respect. But while there's not a single definition of beauty that emerges from this collection of essays on 'beautiful code', there are some common themes that do emerge again and again. But more of that later.
This is a fairly eclectic collection of writing about code, covering different types of software (from deep within the guts of operating system kernels to fundamental sort algorithms to processing gigabytes of data in bioinformatics), different languages (from C to Java to Ruby to assembler) to different domains (from data mining to gene sorting to XML parsers). While all of the authors are noted experts or hackers, some are better known than others, and some write with greater skill than others. What all of the authors share in common is a notion that code itself can be interesting and beautiful - it isn't just the algorithm that it's important it's the code itself.
There are some stand-out pieces that deserve mention - Tim Bray's piece on searching through log files using Ruby and Java does a great job of showing the strength of those languages, Brian Kerninghan's article on regular expressions, Michael Feathers writes about the unusual API design of the Framework for Integrated Testing, writing unit testing code is considered beautiful by Alberto Savoia. There are plenty of other good articles, and while some of them really didn't grab this reader, overall the 33 chapters present a fairly high standard of writing, technical excellence and interest.
While this isn't a book that covers the latest programming fad or the latest and greatest programming language, framework or methodology, it's certainly one that will appeal to those of us who are interested in coding. And the idea of beautiful code is one that ultimately has a distinctly utilitarian value. Beautiful code is code that encapsulates an elegant algorithm, that uses features of a language that are natural, it's code that isn't encumbered with special cases or clunky data structures. These ideas of elegance and simplicity emerge in many of the examples described by the different authors. Beautiful code is also code that is flexible and powerful and efficient. And if we all wrote code that was beautiful our software (and our users) would benefit from it directly.
And if all that doesn't convince you that this is ideal holiday reading for developers, then it's worth pointing out that all the profits from this book are pledged to Amnesty International.