Dr. Alan Kay on the meaning of "object-oriented programming"
Dr. Alan Kay clarifies that object-oriented programming, which he coined, is fundamentally about messaging, not classes or objects themselves. He emphasizes that the core idea is encapsulated, communicating components that act like biological cells or networked computers, a vision often lost in modern interpretations like C++ and Java.
Background
- Dr. Alan Kay pioneered object-oriented programming (OOP) at Xerox PARC in the 1970s, creating Smalltalk — the first true OOP language. He also envisioned the laptop and helped invent the graphical user interface later copied by Apple and Microsoft.
- Kay argues that modern OOP (Java, C++, Python) corrupted his original vision. For him, OOP means "message passing" between independent "computers" (objects), not class hierarchies and inheritance.
- He contrasts his "biological cell" model with "Simula-style" OOP (which influenced C++/Java), calling inheritance-based typing "a disaster" that leads to rigid, fragile designs.
- Kay advocates "extreme late binding" — objects should be able to respond to messages dynamically at runtime, not follow pre-planned type structures. This allows systems to evolve organically.
- This context matters because Kay's critique challenges the foundation of most professional software today. Many engineers' frustration with OOP complexity stems from using a paradigm that was fundamentally altered as it was commercialized.