How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes.
This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International.
Review By: Scott Brookhart 05/16/2008Although the term "beautiful" is subjective--beauty is in the eye of the beholder, the authors provide distinct properties that can only come after years of experience as to why the code is termed beautiful. The authors are current or former coders that have contributed to the industry in significant ways with a great deal of expertise as to making software work with all of the facets that come with writing code.
The experience of these authors is what makes the book impressive. The book consists of thirty-three separate contributions (some chapters have more than one author) with different perspectives as to why their code is beautiful. The editors took the separate contributions and created a readable, flowing format. This book exposes the reader to a variety of industries where software is essential to solving the problems. Languages referenced in this book include Python, Perl, C, C++, C#, Java, FORTRAN, Lisp, Scheme, and Haskell in addition to industry specific frameworks. Some contributions do have URL references where code can be downloaded and some chapters include further reading, but there is no CD that combines all of these reference materials.
Not all coders will appreciate this content, particularly those just starting out as they may have a difficult time following along or necessarily understanding why the code in the book is beautiful. It is the seasoned practitioner who will appreciate the thought more so than the beginner. Other books like Programming Pearls and the Practice of Programming (though Jon Bentley and Brian Kernighan are contributors to this book) are a little more directed than this book, but I liked the variety and the intent.
All told, this book is not for the faint of heart, there are complicated algorithms discussed and the nuances as to why the code is beautiful which could only be well-understood by those who have written code and realized the faults with their practice. Software practitioners who can apply the appropriate tool and design to the problem make for a beautiful solution which is captured in the essence of this book. The reader can follow along with these gurus and their thought processes as to why and how they came up with the solution they did and integrate these thought processes into their study. Any book that can enlighten a person is worthy and this book does that for the appropriate reader.
This book is for the seasoned programmer who has experienced scar tissue in writing code and understands the complexity, design, and issues with creating software appropriate to the problem. Einstein’s quote “Keep things simple, but no simpler” captures the intent of this book. Software is a complex subject and these gems of code are worth the time to see why they are beautiful.