content

The Big OOPs: Anatomy of a Thirty-five-year Mistake

The Big OOPs: Anatomy of a Thirty-five-year Mistake was a talk given by Casey Muratori at Better Software Conference 2025. 1 In the talk, Casey makes the claim that OOP was originally motivated by a desire to directly model distributed domains and to improve code reuse. 2 3

OOP was attractive to developers who were working on distributed systems like Simula, developed by Kristen Nygaard and Ole-Johan Dahl at the Norwegian Computing Center in 1962. 4 However, Simula ran into a lot of usability problems, including long build times and a slow runtime. 5

The Simula developer were inspired by the 1966 paper Record Handling by C.A.R. Hoare who suggested the idea of representing classes of objects in the real world with mutually exclusive subclasses and record class discriminators. 6 Casey also implies that the idea of having discriminated unions was lost at this point because no one believed in it, but I don't agree with this because ML, a language that I believe had this feature, was introduced several years later. 7

C.A.R. Hoare was influenced by the idea of a "plex" record-like structure that Douglas T. Ross had previously worked on when they were sitting together on the Algol 68 committee. Douglas T. Ross was working at MIT Servomechanisms Laboratory in Cambridge, MA in 1952 when he had the idea of "plex" structures as a alternate way to design structures, in response to how Lisp could only deal with structures containing at most two elements. While he was working at MIT Servomechanisms Laboratory, a person named Ivan Sutherland starts working there and develops a drawing called Sketchpad. 8

Sketchpad had ECS-like design in 1963, but it was overlooked as developers at the time preferred virtual functions and inheritance. We didn't see this kind of system again until a ECS-like system was implemented at Looking Glass by Marc "Mahk" LeBlanc for Thief in 1998. This accounts for the 35-year gap from which this talk gets its name. 9 10

meta

tags: better-software-conference, object-oriented-programming

created: modified:

backlinks: BSC 2025

commit: 386c51b