On 10/3/2014 10:38 AM, Brad Roberts via Digitalmars-d wrote:
The part of Walter's point that is either deliberately overlooked or somewhat
misunderstood here is the notion of a fault domain. In a typical unix or
windows based environment, it's a process. A fault within the process yields
the aborting of the process but not all processes. Erlang introduces within
it's execution model a concept of a process within the higher level notion of
the os level process. Within the erlang runtime it's individual processes run
independently and can each fail independently. The erlang runtime guarantees a
higher level of separation than a typical threaded java or c++ application. An
error within the erlang runtime itself would justifiably cause the entire system
to be halted. Just as within an airplane, to use Walter's favorite analogy, the
seat entertainment system is physically and logically separated from flight
control systems thus a fault within the former has no impact on the latter.
So, where you have domains which must not impact each other, you reach for tools
that allow complete separation such that faults within one CANNOT impact the
other. You don't leave room for 'might not'.
Thanks, Brad, that is a correct formulation.