The post claims you can reliably have only two of three things at once: concurrency, interactivity, and mutability. Here "interactivity" does not mean a responsive UI. It means being able to inspect and change a running program from inside, like a REPL poking at live data structures. In that framing, the author groups languages like C, Rust, and Go as giving up that kind of live runtime access, and presents immutability as the escape hatch that keeps interactive systems safe, though at a performance cost from copying.
Most of the useful reaction was that this is not a universal systems law. It is a good description of a specific failure mode in Lisp-like environments where a human or tool can reach into shared live state and mutate it outside the program’s intended ownership boundaries. Once you read it that way, the examples make more sense and the title becomes less grand than advertised. Several people said the real axis is not "interactivity" but uncontrolled access to shared state. If mutation is routed through a single owner, hidden behind a module boundary, or isolated in an actor, you can keep concurrency without chaos. If runtime tools need access, they have to participate in the same synchronization story as everything else.
The strongest technical pushback hit the post’s treatment of immutability. Commenters argued that immutable systems do not necessarily copy whole objects on change.
Persistent data structures can share almost all of their structure, so a small update to a large map often rewrites only a tiny fraction of it. That makes the cost model very different from "copy everything," though it shifts complexity into
garbage collection and memory management when many processes share data.
Erlang and
Elixir were cited as practical examples that already mix process isolation with shared handling for large binaries. Others pointed out that plenty of mature systems already offer all three properties in practice, just not for free. Databases, the
HotSpot JVM, read-copy-update techniques, and actor runtimes all buy their way there with sophisticated implementation work, strict ownership rules, or both. The settled view was that the post is useful as a design smell detector for live shared mutation, but not as a hard choose-two theorem.