I’m sure he’s going to chime in when he has some time but for the time being I’ll just express my impression as a reader of the book.
There is an expectation that a reader of Elixir in Action may have some OO background and the essence of the message that I received is:
- Choosing boundaries for processes is different from choosing boundaries for objects/classes.
In particular:
-
Processes are units of computation, messages implementing protocols are coordination - i.e. there is a very clean separation between the computational model and coordination model.
-
OO designed according to CRC leads to very different boundaries for Objects/Classes primarily motivated by encapsulation and while collaboration can be seen as a form of coordination, collaboration tends to happen primarily in the computational domain.
While both have state, processes and objects (classes) are even more different than apples and oranges.
Aside: Process and Stateness are they object? - #8 by peerreynders