HackerTube

Joe Armstrong & Alan Kay - Joe Armstrong interviews Alan Kay

Erlang Solutions6 HN recommenders · recommended in 7 months, 2016–2026
YouTube
interview · intermediate · evergreen · 2016–2026 on HN

Joe Armstrong, creator of Erlang, interviews Alan Kay at Code Mesh. They discuss the meaning of object orientation, message passing, the META II paper, and the state of computer science.

HN uses it in debates about what OOP originally meant, since Kay's message-passing view lines up with Erlang's processes.

12 comments from Hacker News

@mempko2026-07 · in “A Love Letter to Object Orientation”

Thanks, I'll check it out! When I implemented messaging for Abject, I used the Erlang model. I also added P2P support so objects can talk across the network. There is this great discussion between Joe Armstrong and Alan Kay if you haven't see it. ▶ this video EDIT: Just checked your smalltalk implementation. Very cool! Do you remember the Open Croquet project in the early 2000s? Way ahead of it's time. I wonder if a modern version of that could work today now that we have good VR headsets.

Recommends View on HN
@AceJohnny22025-05 · in “Alan Kay did not invent objects (2019)”

Indeed, here's a email from Alan Kay about how his perspective is about "messaging" between objects: link (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) ▶ this video

Recommends View on HN
@Rendello2021-11 · in “Ask HN: If OOP is about message passing, why not sender.send(receiver, message)?”

One sort-of exception is Erlang (and anything else that runs on the BEAM vm, like Elixir). It doesn't match Alan Kay's vision exactly, because the message passing is done a bit differently (for example it's asynchronous), but creator Joe Armstrong called it something like "the best of functional programming and OOP". If you come from C++, Java, or other "OOP" languages, and look at Erlang, it's completely different than what you expect. In Erlang, the "objects" are less like mutable structs and more like functional mini-programs that can create new programs, pass messages, and fail as you would expect. To get some perspective on both of their perspectives, here's "Joe Armstrong interviews Alan Kay": ▶ this video

Recommends View on HN
@gens2020-05 · in “Single Writer Principle (2011)”

Checking out what Alan Kay has to say about it might help: ▶ this video The way i see it OOP is about encapsulating/bundling data and the code that processes that data into one "object", that is isolated from other objects. The objects could only "communicate" with other objects by sending "messages" (data/events/something). Personally i don't like OOP, and think that focusing on data and how it's processed is a better way forward (CSP and such). It's.. a complicated matter.

Recommends View on HN
@gens2020-04 · in “Gleam: A statically typed language for the Erlang VM”

Concurrency.. the way i understand it, it is about making parts of the program run independent of each other and thus can run at the same time. But you might want to check out someone who knows better, like Rob Pike: link Yes, Erlang makes concurrent programs easier to write. Again it is better to listen to someone who knows more, like the creator of Erlang Joe Armstrong: link Any talk by him is great. Erlang, in how i see it, makes it easier to write concurrent programs because: 1. Parts of a program communicate with other parts by passing messages 2. Every variable is static, as in if you declare that A is 12 you can not change it to be 13 Joe Armstrong had a way of explaining these things so that even i could understand, so i do recommend watching every talk you can find of him. I also recommend the interview he did of Alan Kay ▶ this video . But if you want to really get into concurrency i recommend a paper called "Communicating Sequential Processes" by C. A. R. Hoare. See link It's a "formal language" for dealing with concurrency. Go, and some other languages, implement a "CSP style" way of doing concurrency. Erlang doesn't do SIMD, nor GPU. However, it does world scale low latency systems. Of course, it's still up to the programmer to do everything correctly and Erlang is just a tool. I don't quite like *JS, so i won't say anything about that.

Recommends View on HN