Richard A. O'Keefe wrote:
The question I think is interesting is whether telling students to think in terms of objects TALKING to each other makes it harder for them to think of concurrent implementations. Would some other metaphor (perhaps sending couriers with messages, or thinking about a factory with things concurrently moving from machine to machine at the same time) make it easier for them to think of and understand concurrency?
Before settling upon a carrier pidgeon metaphor for communcation in ToonTalk I considered lots of other alternatives including a postal system with mail carriers and mail boxes, rivers where you can place floating messages to those downstream, wires, fax machines, email, and telephones. I never considered face-to-face talking since I took for granted that objects are spread out spatially. I think the answer to Richard's question is that the right choice of metaphor can significantly facilitate thinking and understanding concurrent programs.
Wires may be how messages are really passed within and between computers but wires are not an ideal metaphor. The messages are invisible. Wires cannot be sent along wires. Directionality isn't apparent. Wireless communication is even worse.
Talking or telephones aren't good because both parties need to be available at the same time. Many-to-1 communication by telephone is confusing. While phone numbers can be communicated over the phone that would lead to a model where numbers denote objects or communication channels. So can they be made up and dialed at random? Not good.
Even the postal system doesn't provide an ideal metaphor. If you want to send the receiving end of a communication channel to someone do you have to pick up your mail box and send it by mail to someone? And then does the postal system know that the mailbox has moved or do you need to think about forwarding addresses?
A bird that when given something flies to her nest and leaves it there and returns works out very well. You can give a bird a box that might contain other birds and nests - not too strange. The only strange thing is that a bird always finds her nest no matter where it has been moved to. But that doesn't seem to cause any confusion.
All I know about Ken Kahn's ToonTalk is what I've read in this thread, but it sounds as though uses a "physical" rather than "verbal" metaphor, so I think his observations are particularly interesting here.
You all are welcome to try out ToonTalk. There is a free trial version and you are all welcome to try to beta version as well. It only runs on PC with Windows (or Macs emulating a PC with Windows - don't know about Linux emulators). Details at www.toontalk.com
Best,
-ken kahn
On Tuesday 30 October 2001 11:32 am, Ken Kahn wrote:
You all are welcome to try out ToonTalk. There is a free trial version and you are all welcome to try to beta version as well. It only runs on PC with Windows (or Macs emulating a PC with Windows - don't know about Linux emulators). Details at www.toontalk.com
Doesn't work under VMWare (Win2K under VMWare running on Linux).
squeak-dev@lists.squeakfoundation.org