On 10/4/2014 4:19 AM, Joseph Rushton Wakeling via Digitalmars-d wrote:
On 04/10/14 11:18, Walter Bright via Digitalmars-d wrote:
You seem to be convinced that I don't understand the principles you are
advocating of isolation, backup, and so forth. What I've been trying (but
obviously failing) to communicate to you is, "OK, I agree on these principles,
let's talk about how to achieve them in a practical sense with D."
Ok, I understand. My apologies for misunderstanding you.
I would suggest the best way to achieve that is to use the process isolation
abilities provided by the operating system. Separate the system into processes
that communicate via some messaging system provided by the operating system (not
shared memory).
I read that the Chrome browser was done this way, so if one part of Chrome
crashed, the failed part could be restarted without restarting the rest of Chrome.
Note that such a solution has little to do with D in particular, or C or C++.
It's more to do with what the operating system provides for process isolation
and interprocess communication.
Right. Which is why I'd like to move the discussion over to "How can we achieve
this in D?"
D provides a lot of ability to make a single process more robust, such as pure
functions, immutable data structures, unit testing, @safe, etc., so bugs are
less likely. And my personal experience with developing D programs is they come
up faster and are less buggy than my C++ ones. But once a bug is detected, we're
back to chucking the process.