
On Wed, 2008-09-17 at 23:42 +0200, Arnar Birgisson wrote:
On Wed, Sep 17, 2008 at 23:20, Aaron Denney
wrote: The central aspect in my mind is a default share-everything, or default share-nothing.
[..snip...] These are, in fact, process models. They are implemented on top of thread models, but that's a performance hack. And while putting this model on top restores much of the programming sanity, in languages with mutable variables and references that can be passed, you still need a fair bit of discipline to keep that sanity. There, the implementation detail of thread, rather than process allows and even encourages shortcuts that violate the process model.
Well, this is a viewpoint I don't totally agree with. Correct me if I'm not understanding you, but you seem to be making the point that OS processes are often preferred because with threads, you *can* get yourself in trouble by using shared memory.
The thing I don't agree with is "let's use A because B has dangerous features". This is sort of like the design mantra of languages like Java.
Or Haskell. jcc