Erlang on the JVM
wiki.github.com
wiki.github.com
Notice how its written that in Erjang you just use shared variables to pass messages between two processes VS copying messages. There you go. If the VM handles thread safety for you, then what do you care that the variable is shared vs not shared or mutable vs not mutable (in the underlying vm)? Shared just means better performance. Wasent the whole point of erlang to let your VM handle sharing vs copying and isolating processes; while you code multi-processing, erlang uses whatever it wants for efficiency.
Nobody should. Mutability or immutability is a property of programs, not languages. Some languages make it syntactically impossible to express mutation, but it's still all machine language in the end, which allows quite arbitrary mutation, so the only reason those languages can work is that they choose to refrain from mutation in their VM.
I have been looking for something similar for C but have not been able to find anything.
That's how the Mono project started :-)
Wouldn't it be much better to port another language to the Erlang VM (like Ruby) than the other way around?
Just because you don't like erlang syntax and would prefer to have ruby on top of BEAM, doesn't mean that others should not undertake this port.
Rather than question erjang, why not start your ruby/BEAM port?
Edit: better grammar.
Just a thought.