A Philosophy of Software Design | John Ousterhout | Talks at Google

Talks at Google · 547K views · 2018 · 1:01:40

Open on YouTube

Software architecture & designTech pioneers & interviewstalk

Why Hacker News recommends it

HN treats it as the standard one-hour teaser for the book and recommends it for its deep-modules thinking before buying or reading the book.

What it is

John Ousterhout, Stanford professor and creator of Tcl, presents the ideas of his book A Philosophy of Software Design in a Talks at Google session. He covers managing complexity, deep modules and interfaces, and what he teaches in his Stanford software design course.

Recommended by 11 HN commenters across 10 different months, 2018 to 2026.

What Hacker News said

Strong rec EdwardCoffin · 2019-02 · on “Programming Books You Wish You Read Earlier”

I haven't read the book yet, but I have watched his Talks at Google talk on the topic [1] a couple of times (1 hour), highly recommended. [1] [this video]

Strong rec loup-vaillant · 2023-01 · on “”

> I'd rather get to value now by making something that just works(and is adequately tested) than engineer something thats future proof but takes longer to get out. If you haven't read it, I highly recommend A Philosophy of Software Design by John Ousterhout. His talk is a great teaser for the book: [this video] Here's the thing: a program properly written for the future does not take longer to get out. Not much, at least. What we instinctively think of as "future proof" is generally anything but: by anticipating some particular kind of change that may happen some time in the future, but in practice almost never does, we end up with more complex programs that are harder to modify when an actual (t

Strong rec devnonymous · 2024-07 · on “A brief interview with Tcl creator John Ousterhout (2023)”

This google talk [this video] is a condensed version of the (already small - 150 pags IIRC) book. I highly recommend both. To the point made by the GP (and others here) about how useful the book is, I must add that I got a whole lot more from this small book than some other well known and oft suggested titles (like Clean Code, POSA etc). My most recent peeve about the matter is that Kent Beck"s "Tidy, Fisrt?" was apparently motivated partly in response to this book and yet it falls way too short to matching up. Half of thst book is way too simplistic and almost patronizing and the other is handwavy abstract notions too scared to touch reality lest it spoil the narrative.

Strong rec pcwelder · 2026-02 · on “Parse, Don't Validate (2019)”

Each repost is worth it. This, along with John Ousterhout's talk [1] on deep interfaces was transformational for me. And this is coming from a guy who codes in python, so lots of transferable learnings. [1] [this video]

Recommends bch · 2020-01 · on “Who Says Tcl Rules?”

You’re right re: it’s early internals, and we probably both know people who still (mistakenly) complain about that. Conceptually the “everything is a string”(EIAS) model still holds though, even though it’s supported by dual-ported “objects” w native representation, and the running is often byte-compiled instead of string parsing. We’ve got early smart fans who saw the vision and possibilities like Karl Lehenbauer, Don Libes, Richard Hipp, and the current core team like Kevin Kenny, Don Porter, Donal Fellows, etc who deeply understand What Tcl Is, and strictly maintain it, even while pushing it ahead (TclObj, finally an in-core blessed object system, native database framework, Miguel Sopher’

Recommends ignoramous · 2020-05 · on “In Search of an Understandable Consensus Algorithm (2014) [pdf]”

I haven't read the book, but this presentation from professor John Ousterhout on the book was pretty good: [this video]

Recommends code_biologist · 2020-05 · on “Ask HN: Best books under 200 pages for developers?”

I came into this thread hoping to find the suggestion near the top. Beyond his credibility as the creator of Tcl, in the talk he gave at Google about the book [1] he describes the course he teaches that was the inspiration for the book. The course is to write a word processor with a team and extended it with features over the semester, swapping codebases between teams so occasionally you have to work with other's code. Essentially the largest possible code project you can fit in one semester. Along the way, Ousterhout will give a deep code review of the each project. I think it must be very insightful to see the same project implemented so many ways, and to see what works in terms of simplic

Recommends bear8642 · 2022-05 · on “Ask HN: How did you learn good program design?”

>"A Philosophy of Software Design" by John Ousterhout Indeed, very interesting little book! He's done a talk[0] about it if you want a taste before buying. [0] [this video]