Message Passing Is Shared Mutable State
Summary
The essay argues that message passing does not eliminate shared mutable state in concurrency models. It uses Go, Java, and Erlang examples to show that channel- or queue-based coordination still yields classic bugs like deadlocks, leaks, and races, and advocates rethinking the concurrency dichotomy beyond shared memory versus message passing.