Member-only story

Misconceptions About the Philosophy Behind OOP

Alan Kay coined the term object-oriented programming, but it has since been widely misunderstood.

Erik Engheim
8 min readApr 30, 2021

I tried to explain in more detail with numerous examples about what object-oriented programming was originally about in my story: Go is More Object-Oriented Than Java.

Yet judging by various comments I have gotten, many people really struggle to understand the full scope of the ideas Alan Kay had about object-oriented programming. Thus this is sort of a follow up article to clarify what I see as common misconception.

Let us start with a simplistic definition of object-oriented programming from Alan Kay. He imagined object-oriented programming as taking a networked computer and scaling it down. Each computer has internal state. It has hard drives and ability to perform calculations. It communicates with other computers through a network. This computer is essentially an object in Kay’s thinking. He imagined scaling computers down to smaller virtual entities which you could connect together in similar fashion inside a computer to build larger systems. These objects would have the following key traits:

  • Message passing — Communication only through messages. No shared state.
  • Isolated — One object crashing would not bring down the whole system. E.g. a computer on the internet crashing does not bring down the whole internet. But in everyday programming that is indeed what…

--

--

Erik Engheim
Erik Engheim

Written by Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

Responses (7)