Russ Abbott wrote:
I'm surprised at how difficult it seems to be to get my point across. A new Oz user faces two problems. The first problem is simply to understand that Oz is *built to suspend.* That's not the sort of behavior that people expect when approach a programming language. Most programming languages are not built with silent suspension as such a major feature. That's why I think it is important to emphasize that basic fact and to make it as visible as possible for new users.

I understand your point. Note however that most operating systems do provide a silently blocking operation: reading a file (especially the stdin). Its blocking behavior is so natural that users don't even think about it!

I think that the blocking thing is not the real issue. I think the real issue is that most programmers don't have a clue about *concurrency*. They think that concurrency implies semaphores, locks, and maybe monitors. They think that interprocess communication must be stateful. That's why most programming languages discourage the use of concurrency.

Oz was designed to be concurrent. And its designer made the right choice: thread communication should be through dataflow variables.

Even the Java guys understand it now. The last release introduced *futures*. A future is nothing else than a dataflow variable. Java's futures have a method get() that silently blocks until the future is bound.


Cheers,
raph


_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to