Message Passing Is Shared Mutable State

23 points by runxiyu


doug-moen

After reading this, I thought that the author's arguments actually support the idea that Message Passing is not Shared Mutable State. They gave two examples:

I've been involved in writing concurrent code in C/C++ using two paradigms: shared mutable state (plus locks), and synchronous message passing (of the same kind that is supported by QNX). Shared mutable state was horrible: we were never able to fix all the concurrency bugs (in the legacy code we inherited and were extending). Synchronous message passing was wonderful: orders of magnitude easy to reason about and get right. In one project, we implemented the same module both ways, as a comparison, and the difference was stark.

olliej

I don’t understand this?

Message passing has nothing to do with preventing deadlocks, yet this presents it as “striking” that it doesn’t prevent them?

Similarly the core problem of shared mutable state isn’t blocking (I guess unless they mean the locking around it?)