Who Is the Father of OOP? Alan Kay and the History of Object-Oriented Programming
Alan Kay is called the father of object-oriented programming. He coined the term and led the team that built Smalltalk.
There is a second name that belongs in the same answer. The first language with objects and classes was Simula, created by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Center.
So the short version is this. Dahl and Nygaard invented the idea in code. Kay named it, defined it, and made it a way of designing whole systems.
Both answers are correct, and a good answer gives both.
Who Did What
| Person | Contribution |
|---|---|
| Ole-Johan Dahl and Kristen Nygaard | Created Simula, the first language with classes, objects, inheritance and virtual methods |
| Alan Kay | Coined the term object-oriented programming and led the Smalltalk work at Xerox PARC |
| Dan Ingalls and Adele Goldberg | Built and shipped Smalltalk with Kay, and wrote much of its design |
| Bjarne Stroustrup | Created C++, which brought Simula style classes to C |
| Grady Booch, Ivar Jacobson and James Rumbaugh | Created UML and much of object-oriented design method |
Dahl and Nygaard received the Turing Award for Simula. Kay received the Turing Award for Smalltalk and for his work on personal computing.
What Alan Kay Actually Meant
Kay's idea of objects did not start with classes or inheritance. It started with messages.
He described an object as a small computer that holds its own state and answers messages. No outside code touches that state directly.
His own summary names three things. Messaging between objects. Each object keeping and protecting its own state. Deciding as late as possible which code a message runs.
Kay was influenced by biology. He pictured a system as many cells that send signals, not one program that calls functions.
He later said plainly that he did not have C++ in mind when he made up the term. The mainstream idea of OOP drifted toward classes and inheritance, which was not his emphasis.
How the Ideas Reached Modern Languages
Simula introduced the class and the object. Smalltalk made everything an object, including numbers and classes themselves.
C++ took Simula's classes and added them to C, with performance as the goal. That made objects usable for systems programming.
Java then removed manual memory management and made objects the default unit of every program. Python, C#, Ruby and Kotlin followed the same path.
Each step traded some of Kay's original idea for practicality. Late binding and pure messaging are weaker in Java than in Smalltalk.
The Four Ideas People Mean by OOP
When an interviewer asks who invented OOP, they usually follow with the core ideas. Name them clearly.
Encapsulation means an object keeps its data private and exposes behavior. Outside code asks the object to act rather than editing its fields.
Abstraction means the caller sees what an object does, not how. A queue hides whether it uses an array or a linked list.
Inheritance means one class reuses and extends another. It came from Simula.
Polymorphism means one call runs different code depending on the object. This is Kay's late binding in practical form.
Modern practice favors composition over inheritance. Objects hold other objects rather than extending them, which keeps changes local.
How to Prepare
- Give both names, in one breath. Alan Kay for the term and the concept, Dahl and Nygaard for the first language.
- Do not stop at the name. Follow it with what OOP means, because that is the real question behind it.
- Know one sentence per pillar. Encapsulation, abstraction, inheritance and polymorphism, each with a small example.
- Be ready for the design version. Object-oriented design questions ask you to model a parking lot or a chess game, not to recite history. Practice with Grokking the Coding Interview.
- Get the base right first. Objects rest on data structures, so review them in Grokking Data Structures for Coding Interviews.
- Scale the idea up. The same modeling skill drives Grokking the System Design Interview.

GET YOUR FREE
Coding Questions Catalog

$123

$197

$72