3 ms·
> Push the concurrency and distribution machinery into the language runtime. Developer can neither see nor influence it. This is completely unworkable. It's ba
by goodpoint 4y ago
> Push the concurrency and distribution machinery into the language runtime. Developer can neither see nor influence it.
This is completely unworkable. It's based on the assumption that nodes have zero failure rate and networks have zero latency and packet loss and infinite bandwidth.
Distributed system programming is hard because you want to control the failure modes of your system as closely as possible. The opposite of hiding it.
- JonChesterfield 4y agoIt's based on the assumption that node and network failures can be detected (with a performance cost) and unobservably healed around. It's also assuming that the runtime can make a good enough guess at when the ratio of data size to compute time for a task makes distribution profitable. Distributed systems programming is indeed hard. That's why I want it pushed out of my applications.
- goodpoint 4y ago> It's based on the assumption that node and network failures can be detected (with a performance cost) and unobservably healed around. ...which is false, especially on large scale systems. Unmanaged cascading failures are the kind of thing that caused big downtimes in various FAANGs many times. > Distributed systems programming is indeed hard. That's why I want it pushed out of my applications. Companies hire good software and system engineers to do this stuff.