Analyzing Concurrency Models: How Erlang's Actor Model Still Exhibits Shared State Problems
By
enz
Slow-proofed and worth the wait. Worth its weight in flour.
Summary
The article analyzes concurrency models in programming languages, specifically critiquing message passing approaches. It examines Erlang's actor model as the best case for message passing, comparing it to Go's channels. The author argues that even Erlang's more disciplined mailbox design still exhibits the same fundamental failure modes as shared mutable state, just in different forms. The piece continues a series on what's wrong with current concurrency approaches in programming languages.
Key quotes
· 5 pulledThe actor model has been a significantly influential idea in concurrent programming since Carl Hewitt proposed it in 1973.
Erlang's mailbox design is more disciplined than Go's channels: only the owning process can read from a mailbox, and sends are asynchronous.
Yet the four failure modes of shared mutable state still show up, just in different shapes.
Message Passing Is Shared Mutable State with extra steps.
The honor for 'best case for message passing' probably falls to Erlang.
You might also wanna read
Three Years In: A Senior Engineer's Reflection on AI's Impact on the Software Development Role
A senior engineer reflects on the long-term sustainability of AI tools in software development, three years into deep organizational adoptio
Three Years In: A Senior Engineer's Reflection on AI's Impact on the Software Development Role
A senior engineer reflects on the long-term sustainability of AI tools in software development, three years into deep organizational adoptio
Bijou64: A variable-length integer encoding that's both correct and accidentally fast
This article describes the development of bijou64, a variable-length integer (varint) encoding created for the Subduction CRDT sync protocol
Bijou64: A variable-length integer encoding that's both correct and accidentally fast
This article describes the development of bijou64, a variable-length integer (varint) encoding created for the Subduction CRDT sync protocol
Domain Expertise, Not Code, Is the True Competitive Advantage in Software
The article argues that true competitive advantage ("moat") in software has always been domain expertise—deep understanding of the business
A Formal Proof That Jira Is Turing-Complete via Minsky Machine Implementation
This article provides a formal proof that Jira (Atlassian's project-tracking tool) is Turing-complete by demonstrating how to build a Minsky
