I just finished reading John Ousterhout’s A Philosophy of Software Design. I found it to be a deeply engaging read that challenged many concepts that I’d previously accepted regarding good software design.
While the examples in the book are in Java and C++, the concepts are independent of language and paradigm. His design philosophy is just as applicable to object-oriented programming as it is to functional or even declarative languages.
Because the book challenges much of the “conventional wisdom” I’ve built up as a long-time Rubyist, I’ve decided to write a series of articles outlining what the Ruby community might stand to learn from Ousterhout’s design philosophy over on the Super Good website. Expect the first post next week!
Written by Jared Norman,
published August 14, 2019