Alan Kay did not invent objects (2019)

24 iamwil 28 5/7/2025, 6:07:51 PM hillelwayne.com ↗

Comments (28)

giardini · 1d ago
Ivan Sutherland released SketchPad, which is at least a precursor to OOP, in 1963. Brilliant work!

https://en.wikipedia.org/wiki/Sketchpad

https://engineeringcommunity.net/2025/05/02/ivan-sutherland/

taylodl · 4d ago
Development of Smalltalk started in 1969, and its first release was in 1972 - which is well before 1976. As far as whether Kay invented objects, no, Simula was released in 1967, well before development of Smalltalk had started. But Kay was the one to popularize objects as we think of them today.
Rochus · 4d ago
> But Kay was the one to popularize objects as we think of them today.

Not actually. Kay's view of OO is pretty different from what we understand of OO today; the general understanding is closer to Simula 67; see also the IEEE milestone: https://ethw.org/Milestones:Object-Oriented_Programming,_196.... Ironically Smalltalk-76 and onwards also corresponds more with the Simula 67's than Kay's view.

> Development of Smalltalk started in 1969

You mix that up with Kay's PhD. A good and reliable history about the origin and evolution of Smalltalk can be found in the excellent 2020 paper by Ingalls: https://dl.acm.org/doi/10.1145/3386335

AceJohnny2 · 1d ago
Indeed, here's a email from Alan Kay about how his perspective is about "messaging" between objects:

https://lists.squeakfoundation.org/pipermail/squeak-dev/1998...

(edit: derp, this is directly cited in TFA)

Also, I loved this interview/discussion between Kay & Joe Armstrong, inventor of Erlang, where the topic comes up again (because Erlang is also a lot about messaging between agents)

https://www.youtube.com/watch?v=fhOHn9TClXY

chao- · 1d ago
Are you me? The timing of our posts the biggest coincidences I've experienced in quite a while.
AceJohnny2 · 1d ago
yes, except for the goatee.
chao- · 1d ago
>Kay's view of OO is pretty different from what we understand of OO today

Indeed, in his own words, from 1998:

https://wiki.c2.com/?AlanKayOnMessaging

He also gave at least two conference talks where he explained how his view of objects sending messages was in line with his background in molecular biology: he thought of the objects like cells sending messages via exchanging various chemicals. I don't have either on hand, but I believe one time he shared this was in an interview with Joe Armstrong.

Rochus · 1d ago
> he explained how his view of objects sending messages was in line with his background in molecular biology

I don't think he has a formal education in molecular biology (didn't find any (independent) evidence), and I don't think the analogy he draws between his view of messaging and biochemical signaling really works. His messages are directed to specific objects, whereas in a biological system, enzymes and the like are dumped into the bloodstream indiscriminately without a specific target. Biological systems, in constrast to software systems, lack centralized orchestration, relying on emergent behavior from local interactions instead.

andrekandre · 1d ago

  > His messages are directed to specific objects, whereas in a biological system, enzymes and the like are dumped into the bloodstream indiscriminately without a specific target. 
he actually goes into this in one of his (many) talks where he explains what some next steps might be for objects to "sense their environment" and message into the ether so-to-speak very similar to how you describe [0]

[0] https://www.youtube.com/watch?v=QjJaFG63Hlo

(he starts talking about that around 12 mins)

Rochus · 1d ago
Thanks for the link. We already have computer-implemented objects which "sense their environment" since the seventies; e.g. each network adapter "senses" the physical medium for packets it is interested in (which was actually also invented at PARC); also in message queue systems, senders and receivers are not directly connected, but the receiver observes the queues it is interested in and reacts to messages. Even though there are still significant differences to biological systems, where information is encoded not only in the type, but e.g. also in concentration of molecules; there is also no message order, but communication is subject to stochastic processes.
Jtsummers · 1d ago
> I don't think he has a formal education in molecular biology (didn't find any evidence)

At least the ACM believes he does.

https://amturing.acm.org/award_winners/kay_3972189.cfm

Rochus · 1d ago
Thanks for the hint. That must then have been one of the earliest undergraduate courses in molecular biology in the USA (most universities did not have dedicated undergraduate majors or courses in "molecular biology" in the sixties), and it's a pretty strange combination with mathematics. Early molecular biology education was typically embedded within biochemistry, genetics, or general biology programs.
cxr · 1d ago
It's interesting that Wikipedia lists studies and a degree in molecular biology, started first at Bethany College prior to his draft in the Air Force and finished in Boulder from University of Colorado, whereas the Vita section of his HTML-ified thesis lists simply "biology" at Bethany College and lists anthropology when he returned to school in Boulder. It shows a BS in only math.

<https://www.chilton-computing.org.uk/inf/pdfs/kay.htm>

Rochus · 1d ago
Good reference, thanks; still more things that just don't add up.
0x445442 · 1d ago
Yeah, I've watched many of his talks and this has always bothered me. The biological model would be almost entirely asynchronous messaging without direct coupling. Something more like sending messages to an event bus.
Rochus · 1d ago
I don't think the term "asynchronous" adequately covers the situation. Even asynchronous messages are sent to specific objects in OO. In biological systems, senders and receivers do not know each other, or are not even aware of each other's existence. A model from computer science that corresponds better to biological systems is that of the untyped queue. But in biology, information is encoded not only in the type, but e.g. also in concentration of molecules; there is also no message order, but communication is subject to stochastic processes.
layer8 · 1d ago
I disagree. C++ played a major role in popularizing OOP as we know it today, and Stroustrup derived C++ from Simula.
Rochus · 1d ago
Yet another major role in popularizing OOP played Java, and also Gosling has publicly proclaimed that he derived the object model of Java from Simula 67.
twoodfin · 1d ago
OOP was well-popularized by the time Java emerged in the mid-1990’s. If anything, OOP was past the peak of the hype cycle at that time and Java gave it a renewed boost.
Rochus · 1d ago
Java played a pivotal role in popularizing object-oriented programming, because it was intentionaly designed to be simpler and safer than C++, and it was rapidly adopted as the primary teaching language for OOP in universities and colleges worldwide. OOP languages before Java were either niche (Simula, Smalltalk) or, in the case of C++, considered complex and less accessible for beginners. Java introduced millions of new programmers to OOP concepts, much more than any older language.
igouy · 21h ago
Lest we forget:

> Java played a pivotal role in popularizing object-oriented programming, because it was ...

Free as in beer.

dang · 1d ago
Discussed at the time (of the article):

Alan Kay Did Not Invent Objects - https://news.ycombinator.com/item?id=19985776 - May 2019 (13 comments)

Rochus · 1d ago
Except that Wayne meanwhile added "Update 2025-05-07. I am no longer convinced that Alan Kay invented the term OOP.." to his article; I assume because of the facts that were revealed on HN (see https://news.ycombinator.com/item?id=36826762).
neilv · 1d ago
Alan Kay's "The Early History of Smalltalk" (1993) is long, and absolutely worth a read, and includes this memorable bit about Kay seeing Simula for the first time:

> Finally, another graduate student and I unrolled the program listing 80 feet down the hall and crawled over it yelling discoveries to each other. The weirdest part was the storage allocator, which did not obey a stack discipline as was usual for Algol. A few days later, that provided the clue. What Simula was allocating were structures very much like the instances of Sketchpad. There were descriptions that acted like masters and they could create instances, each of which was an independent entity. What Sketchpad called masters and instances, Simula called activities and processes. Moreover, Simula was a procedural language for controlling Sketchpad-like objects, thus having considerably more flexibility than constraints (though at some cost in elegance) [Nygaard, 1966, Nygaard, 1983].

https://worrydream.com/EarlyHistoryOfSmalltalk/

https://dl.acm.org/doi/10.1145/155360.155364

Rochus · 4d ago
johnea · 1d ago
Outside the issue of OOP, Alan Kay has always been an icon to me, since I moved to Solana Beach CA in the early '80s soon after the establishment of Kaypro computers in that city.

https://en.wikipedia.org/wiki/Kaypro

EgoIncarnate · 1d ago
According to the Wikipedia page, Kaypro was created by Andrew Kay, not Alan Kay.

Interestingly both had a relationship to a NLS in there lives.

For Andrew, it was Non-Linear Systems, where Andrew invented the digital voltmeter.

For Alan, it was oN-Line System, where he attended "The Mother of All Demos", which spawned the mouse and some other inventions used in the Xerox Alto, which is where Smalltalk was primarily developed initially.

johnea · 13h ago
Thank you for the correction!

On re-reading, I realize the name I thought I was remembering is "Andy" Kay, not Alan Kay.

I guess I was victim to "close but no cigar".

To quote Emily Latella: Never Mind...