From: Csaba Henk Date: 2006-07-21T07:05:05+09:00 Subject: Re: Beyond threads? Better concurrency methods? On 2006-07-20, tsuraan@tsuraan.net wrote: > Erlang's sort of a strange one. Obviously, it can't be called > academic, and the programming model is entirely based on concurrency, > but at the same time, it doesn't support native threading. I've always > thought that is a strange choice. They have really fast user-space > threading, but it will never use multiple processors unless you're > running multiple Erlang VMs, and then you have to explicitly start your > thread on the VM of your choice, from what I understand. I read somewhere about Erlang that the next release of the VM will support using OS threads for pooling Erlang processes transparently. I can't recall though when the referred statement was written -- it's possible that it was written long before and that "next release" has came to reality since then. > Still, I love > the language. I wish ruby allowed overloading of the ! operator, just > so I could implement a ruby thread wrapper that could accept messages > with Erlang syntax :) Well, in Erlang it's a principle that processes may communicate _only_ via the messaging interface. It's achieved by the (almost) pure functional semantics. Data is never modified in-place, always copied. A function (in particular one ran in a process) can see only the values which were passed to it as arguments (by value). [Disclaimer: AFAICS, IANAEH] I wonder how would you enforce this strong separation in ruby... maybe _why-s shiny Sandbox could be made use of? Regards, Csaba