CSP[1] is also related.
For a quick breakdown of why CSP and the Actor model are both Good Ideas:
Think about any concurrent system (i.e. multiple threads of execution). Any modification of a shared resource by one thread (one concrete example is a global variable, but filesystem, devices &c. all apply too), is implicit communication that can happen at any point whatsoever in another threads execution.
The state of one thread being modified in unsynchronized ways in another inevitably leads to bugs that are very hard to reason about.
Both CSP and Actors involve removing the implicit communication and replacing it with explicit communication.
Two Unix processes connected by pipes are one example of this, since two processes do not typically share any writable memory.
I don't know if you've written any code designed to be used over a pipe. If you have, you may notice that you do not care at all when the process on the other side of a pipe writes to variables. You do not need locks or mutexes or semaphores or any of those constructs for IPC in this situation.
I don't know if you've ever written any multithreaded code with shared variables, but if you have, you've definitely noticed that you need to carefully hand-synchronize modifications to those variables.
Now of course, the only special thing about the unix processes example was the lack of mutable shared state, and the use of an explicit communication channel. You could write a single-process with many threads that communicate over such channels to avoid the IPC overhead of unix, but still get the simple-to-reason-about concurrency of processes.
Pretty much all of the ideas above was published before 1980.
My dad read Hoare's CSP paper when getting his Masters degree and he told me "80% of the class didn't understand it, and the remaining 20% of the class thought that manual synchronization was not a problem" which explains much of the buggy, highly concurrent software written since.
1: https://en.wikipedia.org/wiki/Communicating_sequential_proce...