Beautiful Code
March 10th, 2007
Well, the feline has apparently been debagged: in his keynote at SIGCSE 2007 on Friday, Grady Booch mentioned the book that Andy Oram and I are putting together for O’Reilly. It’s called Beautiful Code: Leading Programmers Explain How They Think, and contains essays by more than thirty great software developers on, well, beautiful code. It isn’t on O’Reilly‘s public site yet, but it’s already listed on Amazon. The contents are:
- Greg Wilson: Foreword
- Brian Kernighan: Beautiful Brevity: Rob Pike’s Regular Expression Matcher
- Karl Fogel: Subversion’s Delta Editor: Interface as Ontology
- Jon Bentley: The Most Beautiful Code I Never Wrote
- Tim Bray: Finding Things
- Elliotte Rusty Harold: Correct, Beautiful, Fast (In That Order): Lessons From Designing XML Validators
- Michael Feathers: Framework for Integrated Test: Beauty through Fragility
- Alberto Savoia: Beautiful Tests
- Charles Petzold: On-the-Fly Code Generation for Image Processing
- Douglas Crockford: Top Down Operator Precedence
- Henry Warren: The Quest for an Accelerated Population Count
- Ashish Gulhati: Secure Communication: The Technology of Freedom
- Lincoln Stein: Growing Beautiful Code in BioPerl
- Jim Kent: The Design of the Gene Sorter
- Jack Dongarra and Piotr Luszczek: How Elegant Code Evolves With Hardware: The Case Of Gaussian Elimination
- Adam Kolawa: Beautiful Numerics
- Greg Kroah-Hartman: The Linux Kernel Driver Model: The Benefits of Working Together
- Diomidis Spinellis: Another Level of Indirection
- Andrew Kuchling: Python’s Dictionary Implementation: Being All Things to All People
- Travis Oliphant: Multi-Dimensional Iterators in NumPy
- Ronald Mak: A Highly Reliable Enterprise System for NASA’s Mars Rover Mission
- Rogerio Atem de Carvalho and Rafael Monnerat: ERP5: Designing for Maximum Adaptability
- Bryan Cantrill: A Spoonful of Sewage
- Jeff Dean and Sanjay Ghemawat: Distributed Programming with MapReduce
- Simon Peyton Jones: Beautiful Concurrency
- Kent Dybvig: Syntactic Abstraction: The syntax-case expander
- William Otte and Doug Schmidt: Labor-Saving Architecture: An Object-Oriented Framework for Networked Software
- Andrew Patzer: Integrating Business Partners the RESTful Way
- Andreas Zeller: Beautiful Debugging
- Yukihiro Matsumoto: Code That’s Like an Essay
- Arun Mehta: Designing Interfaces Under Extreme Constraints: the Stephen Hawking editor
- TV Raman: Emacspeak: The Complete Audio Desktop
- Laura Wingerd and Christopher Seiwald: Code in Motion
- Brian Hayes: Writing Programs for “The Book”
- Andy Oram: Afterword
I’m proud to have worked on it, and even prouder of the fact that royalties from the book will be donated to Amnesty International. My only regret is that Frank Willison isn’t here to enjoy it with us. I hope you all enjoy reading it as much as I hope he would have.
Later: for those who have left comments / sent email asking, “Why isn’t XYZ included?”, the answer is probably one of:
- we weren’t able to reach them,
- we asked, but they declined, or
- we didn’t ask this time around, but if you can talk them into contributing to Volume 2, please do so.
How did you select the authors – on their ability as programmers, writers, or their support for Amnesty International?
A related question, which programmers would have rejected an invitation to contribute because the only charity being supported was Amnesty International?
No contribution from David Heinemeier Hansson — the champion of beautiful code himself? That’s odd…
In reply to Robin Hay and Tomas Jogin, we invited people on the basis of their reputations. Many declined because of lack of time, we hope their schedules will allow them to take part in the second volume (if we do it). A few others declined because they felt uncomfortable with AI, but that would have happened no matter what charity we picked, and several other contributors said that the AI connection was the main reason they made time for the project.
Sheesh, on the internet everyone is a critic …
This looks like a great book and one I look forward to buying. Simon Peyton-Jones shared a draft of his Beautiful Concurrency with one of the Haskell mailing lists so if anyone wants a taster that’s out there somewhere.
For what it’s worth I like your choice of charity, too.
I find it unfortunate that people would elect not to contribute specifically because of AI, but not surprising. I don’t personally agree with everything AI says and does, but I have no problem at all with buying a book that will benefit their worthy efforts. (For instance, I’m inclined to disagree with AI because I believe that “freedom of speech” should not be made to exclude hateful speech. Any society that is too careful not to offend will, in equal part, fail to be genuinely expressive, artistic, and diverse. But this objection does not cancel out all of the valuable contributions AI has made to human rights.) Anyways, thank you for working on what is clearly going to be a great read!
…and no contribution by Donald E. Knuth either? With all his persistence in using literate programming.
In reply to Marco Rooney, a contribution from Knuth would have been wonderful — if you can talk him into writing something for Volume 2, I’ll buy you lunch
Why isn’t Linus one of the co-authors?
I’d trade any 3 of the programmers listed for a contribution from Richard A. O’Keefe, whose contributions to logic programming (Prolog) and Erlang, among others, are beyond brilliant.
Thanks Greg! Naysayers aside, this looks like a wonderful book – I can’t wait to read.
I think I’m developing OCD. I find myself repeatedly performing the following actions.
1. Navigate to Amazon’s page for “Beautiful Code”.
2. See if it’s been published yet.
3. Refresh page a few times (just in case it was published right after I loaded the page).
4. GOTO 2
All that is to say that I’m really anticipating this book. Any updates on when it will be published?
If one particular chapter is holding up the works, I can submit some “How not to code” example code to replace that chapter.
Thanks.
Tim
Tim – Just pre-ordered my copy from Amazon. Looks like it was meant to be published yesterday.
Publisher: Pragmatic Bookshelf (July 15, 2007)
I just ordered the book at amazon. I look forward to have it
)