On Thursday, 16 October 2014 at 19:53:42 UTC, Walter Bright wrote:
On 10/15/2014 12:19 AM, Kagamin wrote:
Sure, software is one part of an airplane, like a thread is a
part of a process.
When the part fails, you discard it and continue operation. In
software it works
by rolling back a failed transaction. An airplane has some
tricks to recover
from failures, but still it's a "no fail" design you argue
against: it shuts
down parts one by one when and only when they fail and
continues operation no
matter what until nothing works and even then it still doesn't
fail, just does
nothing. The airplane example works against your arguments.
This is a serious misunderstanding of what I'm talking about.
Again, on an airplane, no way in hell is a software system
going to be allowed to continue operating after it has
self-detected a bug.
Neither does failed transaction. I already approved that:
When the part fails, you discard it and continue operation. In
software it works by rolling back a failed transaction.
Trying to bend the imprecise language I use into meaning the
opposite doesn't change that.
Do you think I question that? I don't. I agree discarding a
failed part is ok, and this is what traditional multithreaded
server software already do: rollback a failed transaction and
continue operation, just like airplane: loosing a part doesn't
lose the whole.