Book review: Beautiful Code: Leading Programmers Explain How They Think

I got this book from a partnership between http://www.developpez.com/ and O’Reilly. Thanks to both of them.

What defines “beautiful code”? How do people think a beautiful code should look like? This isn’t a simple question to answer, so this book asked several lead programmers (Ruby, Python, C, C++, Java, Perl, …) some beautiful code they wrote or they encountered. And if some want to answer “think about a robust, simple to extend code and that will be it” (and I would be one of them before I read the book), there are some code that would not fit this profile.

Content and opinions

I won’t speak about each chapter because there are numerous and my goal is not to analyze what programmer wrote what. The book has no parts per se, but some chapters can be grouped together.

There is a progression through the chapters, from pure code to architecture and design. The study domains are very wide, regular expression, subversion core, the quick sort algorithm, the evolution of the fast mathematical routines, but also how to test, some pitfalls of concurrency programming, how to design an efficient GUI for bioinformatics or simply an UI for disabled people, … In every case, there is some thing close to what one is doing.

Some may think that there are a lot of books on code writing or code architecture, code design, … but there is not another “Beautiful code”, at least at this time of blogging. It melds these aspects of programming together, and this is what is interesting in this book. It’s not meant to be a reference like the Cormen for “beautiful” algorithms, or Martin Fowler’s book on design, Kent Beck’s on developement, so don’t wait for the same things.

Conclusion

If you are looking for theory about good code practices, this is not a book for you. If you are looking for culture, for some applied code pratices (how they interact with the code, how code can evolve, …), go and read this book.

2 thoughts on “Book review: Beautiful Code: Leading Programmers Explain How They Think

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.