5 ms·
Alan Kay did not invent objects (2019)
- deleted 1y ago[deleted]
- taylodl 1y agoDevelopment 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 1y 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,_1961-1967 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 https://dl.acm.org/doi/10.1145/3386335
- chao- 1y 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 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 1y 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.
- Jtsummers 1y 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 https://amturing.acm.org/award_winners/kay_3972189.cfm
- Rochus 1y agoThanks 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 1y agoIt'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 https://www.chilton-computing.org.uk/inf/pdfs/kay.htm>
- AceJohnny2 1y agoIndeed, here's a email from Alan Kay about how his perspective is about "messaging" between objects: https://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html 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 https://www.youtube.com/watch?v=fhOHn9TClXY
- chao- 1y agoAre you me? The timing of our posts the biggest coincidences I've experienced in quite a while.
- AceJohnny2 1y agoyes, except for the goatee.
- layer8 1y agoI disagree. C++ played a major role in popularizing OOP as we know it today, and Stroustrup derived C++ from Simula.
- Rochus 1y agoYet 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.
- deleted 1y ago[deleted]
- twoodfin 1y agoOOP 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 1y agoJava 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 1y agoLest we forget: > Java played a pivotal role in popularizing object-oriented programming, because it was ... Free as in beer.
- Rochus 1y agoSee also https://news.ycombinator.com/item?id=36826762 https://news.ycombinator.com/item?id=36826762
- johnea 1y agoOutside 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 https://en.wikipedia.org/wiki/Kaypro
- EgoIncarnate 1y agoAccording 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 1y agoThank 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...
- giardini 1y agoIvan Sutherland released SketchPad, which is at least a precursor to OOP, in 1963. Brilliant work! https://en.wikipedia.org/wiki/Sketchpad https://en.wikipedia.org/wiki/Sketchpad https://engineeringcommunity.net/2025/05/02/ivan-sutherland/ https://engineeringcommunity.net/2025/05/02/ivan-sutherland/
- dang 1y agoDiscussed at the time (of the article): Alan Kay Did Not Invent Objects - https://news.ycombinator.com/item?id=19985776 https://news.ycombinator.com/item?id=19985776 - May 2019 (13 comments)
- Rochus 1y agoExcept 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 https://news.ycombinator.com/item?id=36826762).
- hwayne 1y agoOh yeah that's where I remember it from! Pushing an attribution now.
- neilv 1y agoAlan 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://worrydream.com/EarlyHistoryOfSmalltalk/ https://dl.acm.org/doi/10.1145/155360.155364 https://dl.acm.org/doi/10.1145/155360.155364