Safe Is What We Call Things Later
September 4, 2025

Avdi Grimm gave a talk called The Soul of Software about a decade ago and one particular thing in it has stuck with me: you can tell what type of programmer you were taught by based on which part of object-oriented programming they teach first.
Did your teacher start with inheritance? Class hierarchies, abstract base classes, the whole “a Dog is-a Mammal is-an Animal” taxonomy? Then you were taught by what we call a formalist. Someone from the Dijkstra school of thought, where programs are mathematical proofs that happen to execute. They showed you the blueprints before they showed you the building.Or did they start with polymorphism? “Look, different things can respond to the same message in their own way!” Objects having conversations, duck typing, the magic of not caring what something is as long as it knows what you’re asking? You had an informalist teacher. Someone from the Alan Kay school, where programs are living systems of communicating entities. They let you play with the clay before teaching you about kilns.
This isn’t just a teaching preference, it’s two completely different universes of what programming is.
This is a tremendous essay that looks at the nature of programming and recognises that there are essentially two schools of programming, one associated with Dykstra, and one associated with Alan Kay.
Whether you think deeply about what it is you do as a software developer or just go with the flow, I really recommend this. It’s highly readable and thoughtful.