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

PersonContribution
Ole-Johan Dahl and Kristen NygaardCreated Simula, the first language with classes, objects, inheritance and virtual methods
Alan KayCoined the term object-oriented programming and led the Smalltalk work at Xerox PARC
Dan Ingalls and Adele GoldbergBuilt and shipped Smalltalk with Kay, and wrote much of its design
Bjarne StroustrupCreated C++, which brought Simula style classes to C
Grady Booch, Ivar Jacobson and James RumbaughCreated 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

TAGS
Coding Interview
CONTRIBUTOR
Arslan Ahmad
Arslan Ahmad
ex-FAANG engineering manager and author or Grokking series.

GET YOUR FREE

Coding Questions Catalog

Design Gurus Newsletter - Latest from our Blog
Boost your coding skills with our essential coding questions catalog.
Take a step towards a better tech career now!
Explore Answers
What is the CGPA requirement for Oracle?
What is the dress code for Coinbase?
What language does Okta use?
Which type of concurrency is best for CPU-bound programs?
What is the salary of PayPal for 2 years experience?
What is the first step in technical writing?
Related Courses
New
Grokking the AI System Design Interview course cover
Grokking the AI System Design Interview
Learn to design AI systems the way interviewers expect: classic ML products, LLM and RAG architectures, and agentic systems, all through the lens of the system design interview.
4.6
(3,192 learners)
Discounted price for Your Region

$123

Grokking the Coding Interview: Patterns for Coding Questions course cover
Grokking the Coding Interview: Patterns for Coding Questions
The 24 essential patterns behind every coding interview question. Available in Java, Python, JavaScript, C++, C#, and Go. The most comprehensive coding interview course with 543 lessons. A smarter alternative to grinding LeetCode.
4.6
Discounted price for Your Region

$197

Grokking Modern AI Fundamentals course cover
Grokking Modern AI Fundamentals
Master the fundamentals of AI today to lead the tech revolution of tomorrow.
4.1
Discounted price for Your Region

$72

Design Gurus logo
One-Stop Portal For Tech Interviews.
Copyright © 2026 Design Gurus, LLC. All rights reserved.