
Erlang Solutions
6 HN recommenders · recommended in 14 months, 2016–2026
1:16:55 · 76K views · Nov 22, 2016
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.
20 comments from Hacker News
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.
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
That is so sad, he was in his late 60s and it seemed like he had a lot of life left in him, talking about how software can get better and having a great (and sometimes snarky) outlook on the profession. Highly recommend his thesis (2003) and a few of his great interviews/presentations for anyone who isn’t familiar with Joe, it captures a lot of what he thought about and pushed for in his professional life. [LINK] this video [LINK] [LINK] I hope his family and friends can find some comfort in how much he was appreciated and admired in the development community.
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.
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.