HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025

Better Software Conference11 HN recommenders · recommended in 8 months, 2025-2026
YouTube
926K views · 1 year ago · talk · evergreen

Casey Muratori's two-hour talk tracing the history of object-oriented programming back to the 1960s and examining how its ideas, and later entity component systems, came about. It is followed by a Q&A.

HN commenters recommend it for its source-based history of OOP, though some dispute its account of Alan Kay.

Software architecture & designSoftware performance & optimizationGame programming & engines#oop#caseymuratori#entitycomponentsystem#programminghistory#softwaredesign

16 comments from Hacker News

@Rendello2026 · in “Code duplication is far cheaper than the wrong abstraction”

That's one of the things Mike was pushing back on (in the context of C++ / game dev; there's a good example ~20 min in). In case you haven't seen it, Casey Muratori's The Big OOPs: Anatomy of a Thirty-five-year Mistake digs into the different ideas and viewpoints surrounding OOP and how it coalesced into a dogma: ▶ this video

RecommendsView on HN
@theteapot2026 · in “Learning Software Architecture”

Nurse Practitioner? I would say SOLID [1] is a good start, but then I watched this [2] and now I'm in crisis and code anymore. [1]: link [2]: ▶ this video

CitesView on HN
@eska2026 · in “Bjarne Stroustrup: How do I deal with memory leaks?”

Sounds like you would appreciate this talk: ▶ this video Personally I use C or something, anything other than C++ really, if I need something more ergonomic or provably correct. Many excuse C++’s design history with “they didn’t know better”, but the oft forgotten history explained in that video shows otherwise.

RecommendsView on HN
@afiori2026 · in “I Write Games in C (yes, C)”

I enjoyed the pragmatic historical definition of OOP given in ▶ this video where essential it can be seen as subtype polymorphism

RecommendsView on HN
@jodrellblank2025 · in “Your job is to deliver code you have proven to work”

> " Why are we wasting so much time on abstractions like .. objects? " Aside: earlier this year Casey Muratori did a 2.5 hour conference talk on this topic - why we are using objects in the way they are implemented in C++ et al with class hierarchies and inheritance and objects representing individual entities? " The Big OOPs: anatomy of a 35 year mistake "[1]. He traces programming history back to Stroustrup learning from Simula and Kirstan Nygaard, back to C.A.R. Hoare's paper on records, back to the Algol 68 design committee, back to Douglas T. Ross's work in the 1950's. From Ross at MIT in 1960 to Ivan Sutherland working on Sketchpad at MIT in 1963, and both chains influencing Alan Kay and Smalltalk. Where the different ideas in OOP came from, how they came together through which programming languages, who was working on what, and when, and why. It's interesting. [1] ▶ this video

RecommendsView on HN
@fmjrey2025 · in “Fifty Shades of OOP”

Here is an example of a 2006 rant that qualifies: link OO conflates many different aspects that are often orthogonal but have been conflated together opportunistically rather than by sound rigor. Clearly most languages allow for functions outside classes. It's clearly the case today especially with FP gaining momentum, but it's also clear back then when Java and the JVM were created. I think smalltalk was the only other language that had this limitation. Like others in this thread, I can only recommend the big OOPS video: ▶ this video

Strongly recommendsView on HN
@jauntywundrkind2025 · in “Fifty Shades of OOP”

I'd love a deeper dive on how Objects work in NeXTSTEP. From their brochures, they talk about objects being persistent and distributable, that in a workgroup of people everyone can rely on the objects being up to date. I've always been so curious what the broader technical ecosystem looks like here. Presumably there are still processes running on systems. But these processes have lots of objects in them? And the objects are using Mach message passing to converse with other processes elsewhere? Within an application, are objects communicating across Mach too? There's so much high level rhetoric about. Such as this bit. But I'd love a real technical view at what was happening, what objects really were here. link link This is a fun work. It feels like the brief outline for a Speaking for the Dead for OOP. Huge amount of things to lots of different people over time. Seconding @rawgabbit's recommendation for Casey Muratori's The Big OOPs: Anatomy of a Thirty-five-year Mistake, which really is hunting back and back for the cosmogenesis of objects, and covers so much terrain. Objectogenesis? ▶ this video

Strongly recommendsView on HN
@rawgabbit2025 · in “Fifty Shades of OOP”

Muratori traced the history of OOP to the original documents. Skip to the 1:18 mark if you want to skip to his findings. ▶ this video

RecommendsView on HN
@_aavaa_2025 · in “Multi-Core by Default”

ECS is not a game specific thing. It’s a redrawing of encapsulation boundaries which can be applied to systems broadly. ▶ this video

CitesView on HN
@zengid2025 · in “Callbacks in C++ using template functors (1994)”

Heard about this watching Casey Muratori's "The Big OOPs" talk [0]. Thought it couldn't be _that_ Hickey, but turns out it was! [0] ▶ this video

CitesView on HN
@OhMeadhbh2025 · in “How to stop functional programming (2016)”

This is the video that's been going around. It's a bit long and could have been compacted into a 20 minute video, but if you have the time, it's a good overview for people without a computer science background. "Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025" ▶ this video But if your point is there aren't any written articles about stuff like this, I agree. If they're out there, they're a bit outside the mainstream.

RecommendsView on HN
@hiker2025 · in “Object-oriented design patterns in C and kernel development”

Plexes are first mentioned in 1960 link and the paper even starts with a critique of the efficiency of Lisp's approach for representing data with cons pairs (citing McCarthy's paper from the same year). You might also want to watch Casey's great talk on the history of OOP ▶ this video

RecommendsView on HN
@Mathnerd3142025 · in “The Big Oops: Anatomy of a Thirty-Five-Year Mistake [video]”

Casey says he “didn’t really cover Alan Kay” ▶ this video To me that says that Kay wasn’t a major focus of his research. That seems to be reflected in the talk itself: I counted 6 Bjorne sources, 4 Alan Kay sources, 2 more related to Smalltalk, and about 10 focused on Sketchpad, Douglas Ross, and others. By source count, the talk is roughly 18% about Alan Kay and 27% about Smalltalk overall - not a huge part. As far as the narrative, probably the clearest expression of Casey's thesis is at ▶ this video "Alan Kay had a degree in molecular biology. ... [he was] thinking of little tiny cells that communicate back and forth but which do not reach across into each other's domain to do different things. And so [he was certain that] that was the future of how we will engineer things. They're going to be like microorganisms where they're little things that we instance, and they'll just talk to each other. So everything will be built that way from the ground up." AFAICT the gist of this is true, Kay was indeed inspired by biological cells and that is why he emphasized message-passing so heavily. His undergraduate degree was in math + bio, not just bio, but close enough. As far as specific discussion, Casey says, regarding a quote on inheritance: ▶ this video "that's a little bit weird. I don't know. Maybe Alan Kay... will come to tell us what he actually was trying to say there exactly." So yeah, Casey has already admitted he has no understanding of Alan Kay's writings. I don't know what else you wa

CriticalView on HN
@ndiddy2025 · in “Java was not underhyped in 1997 (2021)”

There's a really good talk about the history of OOP going back to the early 60s that goes over this point. The whole "90s style OOP isn't OOP as it was originally intended" thing is largely a myth. When Kay and other OOP pioneers were describing Smalltalk and OOP to professional developers, they all used 90s Java style "compile-time hierarchy of encapsulation that matches the domain model" OOP to explain it. Smalltalk-80: The Language , a book by some of the original designers of Smalltalk, even uses the same shape class inheritance example you'll see in every introductory Java textbook. Here's a link to the talk, timestamped to when he goes over this. ▶ this video

RecommendsView on HN
@romaniv2025 · in “The Big Oops: Anatomy of a Thirty-Five-Year Mistake [video]”

From the video: "It's like, yeah, he said that in 2003, right? He said that after a very long time. So why did he say it? It's because 10 years earlier, he was already saying he kind of soured on it." ▶ this video He mentions Alan Kay about dozen times and uses quotes and dates to create a specific narrative about Smalltalk. That narrative is demonstrably false.

CriticalView on HN
@abetusk2025 · in “The Big Oops: Anatomy of a Thirty-Five-Year Mistake [video]”

I found this talk to be great. It goes through the history of OOP and how some of the ideas for the more modern ECS were embedded in the culture at the formation of OOP in the 1960s to 1980s but somehow weren't adopted. It was pretty clear, even 20 years ago, that OOP had major problems in terms of what Casey Muratori now calls "hierarchical encapsulation" of problems. One thing that really jumped out at me was his quote [0]: > I think when you're designing new things, you should focus on the hardest stuff. ... we can always then take that and scale it down ... but it's almost impossible to take something that solves simple problems and scale it up into something that solves hard [problems] I understand the context but this, in general, is abysmally bad advice. I'm not sure about language design or system architecture but this is almost universally not true for any mathematical or algorithmic pursuit. [0] ▶ this video

RecommendsView on HN
Handmade Hero | Getting rid of the OOP mindset7:44

Handmade Hero | Getting rid of the OOP mindset

vexe
167K views • 9 years ago
Object-Oriented Programming is Bad44:35

Object-Oriented Programming is Bad

Brian Will
2.6M views • 10 years ago
Casey Muratori | Smart-Pointers, RAII, ZII? Becoming an N+2 programmer30:12

Casey Muratori | Smart-Pointers, RAII, ZII? Becoming an N+2 programmer

xDahl
162K views • 2 years ago
Seminar with Alan Kay on Object Oriented Programming (VPRI 0246)2:41:18

Seminar with Alan Kay on Object Oriented Programming (VPRI 0246)

Yoshiki Ohshima (大島芳樹)
31K views • 8 years ago
"Clean" Code, Horrible Performance22:41

"Clean" Code, Horrible Performance

Molly Rocket
1.2M views • 3 years ago
Simple Code, High Performance2:50:14

Simple Code, High Performance

Molly Rocket
463K views • 5 years ago
Refterm Lecture Part 1 - Philosophies of Optimization18:41

Refterm Lecture Part 1 - Philosophies of Optimization

Molly Rocket
93K views • 5 years ago
The Thirty Million Line Problem1:48:55

The Thirty Million Line Problem

Molly Rocket
326K views • 8 years ago
Immediate-Mode Graphical User Interfaces - 200540:12

Immediate-Mode Graphical User Interfaces - 2005

Casey Muratori
150K views • 10 years ago
Where Does Bad Code Come From?42:21

Where Does Bad Code Come From?

Molly Rocket
282K views • 5 years ago
Alan Kay at OOPSLA 1997 - The computer revolution hasnt happened yet1:04:33

Alan Kay at OOPSLA 1997 - The computer revolution hasnt happened yet

Jeff Gonis
127K views • 13 years ago
Data-Oriented Demo: SOA, composition1:32:47

Data-Oriented Demo: SOA, composition

Jonathan Blow
201K views • 11 years ago
Object-Oriented Programming is Embarrassing: 4 Short Examples28:03

Object-Oriented Programming is Embarrassing: 4 Short Examples

Brian Will
2.2M views • 10 years ago
"Uncle" Bob Martin1:23:35

"Uncle" Bob Martin

Program on Entrepreneurship
179K views • 11 years ago
Object-Oriented Programming is Garbage: 3800 SLOC example52:48

Object-Oriented Programming is Garbage: 3800 SLOC example

Brian Will
258K views • 10 years ago
CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”1:00:46

CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”

CppCon
271K views • 8 years ago
CppCon 2014: Mike Acton "Data-Oriented Design and C++"1:27:46

CppCon 2014: Mike Acton "Data-Oriented Design and C++"

CppCon
862K views • 12 years ago
Joe Armstrong & Alan Kay - Joe Armstrong interviews Alan Kay1:16:55

Joe Armstrong & Alan Kay - Joe Armstrong interviews Alan Kay

Erlang Solutions
76K views • 9 years ago
Handmade Hero Day 001 - Setting Up the Windows Build1:13:51

Handmade Hero Day 001 - Setting Up the Windows Build

Molly Rocket
465K views • 11 years ago
Alan Kay - Programming and Scaling56:39

Alan Kay - Programming and Scaling

Colin McDonnell
36K views • 11 years ago