Rob Weir wrote: > Just coming off a concurrent systems course at my Uni: Ada was created > for this sort of thing; i.e. it has built in support for concurrency, > rendezvouses (is that a plural already), monitors, etc, etc at the > language level.
Yes, but the question is, how usable is it in practice? Java, Erlang, Concurrent Clean, and other languages also have built-in concurrency support. I'm not familiar with Clean's approach, and I dislike Java's (which basically amounts to making the programmer do all the work); Erlang's is quite nice. Erlang is basically designed around the idea of parallel, distributed tasks, each of them implemented internally in a more or less pure functional model, communicating by means of asynchronous messages that can contain whatever data you want to send. This is not a bag on the side like Java's "synchronized" keyword; it's fundamental to the basic design of the language, and it's really nice. I have never learned Ada, partly because I've never needed to and partially because it's never attracted my interest, in part due to its reputation as "the PL/I of the '80s" (translation: a vastly overcomplex, do-everything-but-do-nothing-well language... hmm... come to think of it, that sounds a lot like C++). So if you're familiar enough with Ada's concurrency model to describe it for us here, please do. Craig
msg19192/pgp00000.pgp
Description: PGP signature