| ▲ | The Isolation Trap: Erlang(causality.blog) | ||||||||||||||||||||||||||||
| 62 points by enz 2 days ago | 11 comments | |||||||||||||||||||||||||||||
| ▲ | johnisgood 15 minutes ago | parent | next [-] | ||||||||||||||||||||||||||||
> This isn’t obviously wrong I thought it was obviously wrong. Server A calls Server B, and Server B calls server A. In what way is it not wrong? Because when I read the code my first thought was that it is circular. Is it really not obvious? Am I losing my mind? > Not one is enforced by the language or the compiler, [...]. Every mitigation depends on the programmer doing the right thing. If you enforce it through the language / compiler, do you not lose flexibility and expressiveness? | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | lukeasrodgers an hour ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
I don’t have much experience with pony but it seems like it addresses the core concerns in this article by design https://www.ponylang.io/discover/why-pony/. I wish it were more popular. | |||||||||||||||||||||||||||||
| ▲ | aeonfox 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
A real interesting read as someone who spends a bit of time with Elixir. Wasn't aware of the atomic and counter Erlang features that break isolation. Though they do say that race conditions are purely mitigated by discipline at design time, but then mention race conditions found via static analysis: > Maria Christakis and Konstantinos Sagonas built a static race detector for Erlang and integrated it into Dialyzer, Erlang’s standard static analysis tool. They ran it against OTP’s own libraries, which are heavily tested and widely deployed. > They found previously unknown race conditions. Not in obscure corners of the codebase. Not in exotic edge cases. In the kind of code that every Erlang application depends on, code that had been running in production for years. I imagine that the 4th issue of protocol violation could possibly be mitigated by a typesafe abstracted language like Gleam (or Elixir when types are fully implemented) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | cyberpunk 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Eh maybe. I work on a big, mature, production erlang system which has millions of processes per cluster and while the author is right in theory, these are quite extreme edge cases and i’ve never tripped over them. Sure, if you design a shit system that depends on ETS for shares state there are dangers, so maybe don’t do that? I’d still rather be writing this system in erlang than in another language, where the footguns are bigger. | |||||||||||||||||||||||||||||
| ▲ | anonymous_user9 2 hours ago | parent | prev [-] | ||||||||||||||||||||||||||||
This seems interesting, but the sheer density of LLM-isms make it hard to get through. | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||