This document is the result of a series of discussions, some online and some in person, held between Robert "Uncle Bob" Martin and John Ousterhout between September 2024 and February 2025.
John is the author of the book A Philosophy of Software Design (APOSD), a book that was first published in 2018. This book has been on my âto readâ list for a while nowâIâve heard very good reviews for it from a lot of people.
âUncle Bobâ Martin and his 2008 book Clean Code of course need no introduction. Clean Code is one of the OG books on modern programming[^1].
This is an open debate between the two authors on the ideas they disagree on. Andâwow, wow, wowâwhat a fantastic debate this is! The quality and depth of discussion is great, they both pull all the punches without holding back, and yet they are very civil throughout. I have never seen anything like this.
I mostly side with John in this debate. While I found many ideas in Clean Code to be very goodâespecially when I read it many many years ago as a young engineer, Iâve over time felt that itâs too dogmatic and not all that pragmatic.
This is a long read, but itâs well worth your time if you tend to geek out on the nuances of programming and low-level design.
[^1]: The Pragmatic Programmer & Code Complete being the other two books I consider in this league. Many consider Refactoring also to be part of this elite club, but I havenât read it myself.