On Thursday 25 October 2001 10:01 am, Ken Kahn wrote:
David Chase wrote:
I don't know if this has much relevance to Squeak, but in my experience programmers, and I think people in general, are much happier thinking sequentially. The sort of bugs that occur with unstructured parallelism are just too Martian for most people to contemplate. On the other hand, if every method is "synchronized" (to use the Java phrase), it is generally too expensive, and also not enough (to refer back to someone else's transaction example -- books must balance).
Whether people are "happier thinking sequentially" is a very important question. [As an aside, people clearly don't think sequentially - the brain has huge amounts of internal parallelism. And I think it is just an illusion that this parallelism is only at a low level (e.g. neurons). Read Minsky's Society Theory of Mind ( http://www.media.mit.edu/people/minsky/ ) for example.]
Thinking sequentially about problems that are inherently concurrent is suboptimal.
But ToonTalk itself still provides support for sequential programming (from my brief experience with the demo): you program a robot by having it record your (sequential) actions. Though by not allowing a robot to give a box to another robot, you're disallowing the equivalent of subroutine calls (right?).
Isn't it possible in ToonTalk to run into the same kind of problems with concurrency that you describe with other systems?
For instance, wouldn't it be possible to do the bank account example in ToonTalk in such a way that you could have inconsistent results, that is, the same as the problem with:
accountA balance: accountA balance - 50. accountB balance: accountB balance + 50.
You think about solutions from the point of view of a computer scientist who's familiar with all the potential problems of concurrency; would it even occur to a kid or programming newbie to _not_ do it unsafely in ToonTalk?