News for hackers. Stuff that matters.
Re:Soup – Alan Kay on Objects by charlysl on Tuesday October 30, 2018 @07:13AM (#18335431)
You may find the book "Concepts, Techniques, Models of Computing Programming" helpful.

My understanding of how Erlang is approached in this book is as follows:

- the concurrent declarative/functional computation model has the critical advantage but also limitation of not allowing non-determinism of any sort

- client/server programming without a restricted form of non-determinism is impossible (namely, the server must not need to know from which client the next message will be, which is a form of non-determinism)

- this can be solved by adding a new concept: ports. Ports introduce a restricted form of explicit state, while allowing the rest of the program to be purely functional.

- Erlang is classified as belonging to the computation model that results from adding ports to the concurrent declarative/functional computation model: the Message Passing Concurrent model

- the Object Oriented computation model is different: it is the result of adding explicit state to the (non-concurrent) declarative/functional model. Of course, you can then also add concurrency to the mix. The crucial difference with the Message Passing Concurrent model is that non-determinism is now not restricted to ports anymore, making reasoning about program behaviour way more complicated.

- so, if Smalltalk falls into the concurrent OO computation model, it is both more complex and expressive that Erlang.

There are no comments on this comment yet.