Christian Neukirchen wrote:
> "M. Edward (Ed) Borasky" <znmeb / cesmail.net> writes:
>
>   
>>> I'm not sure that Erlang is the right place to be looking for good
>>> Ruby concurrency models, given the fundamental differences between
>>> the two languages. What I think would be interesting though is if
>>> some of the CSP and Pi-Calculus inspired stuff that's being worked
>>> on by the KRoC team (http://www.cs.kent.ac.uk/projects/ofa/kroc/)
>>> make it into the Ruby world.
>>>       
>> Uh ... I'll go check it out, but don't get me started on Pi-Calculus
>> vs. Petri Nets in the Business Process Modeling arena. :) Suffice it
>> to say I've been studying Petri nets for something like 20 years now
>> and I find Pi-Calculus and CSP (and related process algebra notations)
>> dang near impossible to read as a result.
>>     
>
> What about the Join calculus?  It always seemed to me to be relatively
> easy to program and implement, while still being powerful enough for
> serious use, but then I never wrote real code in it.
I'm not familiar with it. My "introduction" to concurrent programming was via Per Brinch Hansen's "Concurrent Pascal" and "Edison" programming languages, which were built on the concept of "monitors". Monitors exist in Ruby, so that's a no-brainer. I also did some small concurrent programming projects in a dialect of Linda called "Circl" in the early 1990s. Ruby has Rinda; again a no-brainer. 

I haven't done much with threads or other low-level techniques -- I much prefer having "industrial strength tools" available for the difficult tasks of concurrent programming. I like to be able to prove, for example, that my code cannot deadlock. And I like to be able to estimate how long it's going to take me to get an answer.

-- 
M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.net/

If God had meant for carrots to be eaten cooked, He would have given rabbits fire.