This looks very cool -- I was totally stoked when it first came out several years ago. Sadly it looks to not be very active. Last commit seems to be in May, then 2008 before that...
back when i tried using it (also several years ago), i was pretty disappointed. i can no longer remember the details, but i much preferred erlang (despite preferring scheme to erlang from a language pov).
"Even when Termite works (and I couldn't get it to work reliably), it differs in functionality compared to Erlang. A single Gambit instance is a single process - its "threading" is implemented using continuations - and so (unlike Erlang) it cannot automatically use a dual core. ... [I]f you want a system that just works, use Erlang.
That's okay, though. Concurrency =/= parallelism. The most important part is being able to build independent blocks that can interact. Having them run at the same time is just a nicety on top of it, but it's in no way essential.
Erlang worked that way from the 80s until 2006, when it started supporting SMP in R11B.
If you like lisp, and you like Erlang, I think that it is the way to go. It compiles to .beam files and runs on the regular VM. I have yet to use it for anything 'serious' but in the toy projects that I have used it for it has been quite good.
It does look more complete than most things that claim to be "Erlang-style", including the idea of "links" and the ability for messages to go between machines, two things typically forgotten when a language tries to wrap itself in the phrase "Erlang-style". Can't speak to the quality itself since I've never tried it. I just wanted to post this since claiming to be "Erlang-style" while not implementing any of the functionality that actually makes Erlang different (links, automatic cross-machine serialization, OTP) is becoming a pet peeve.
Does anyone know how processes are implemented in termite?
I remember looking at candygram a while ago (erlang style message passing for python) and reading that a 'process' uses the OS's underlying thread so you can't scale the number of processes like you could on erlang.
Not that it's been a bottleneck for me but I'm just curious.
7 comments
[ 2.9 ms ] story [ 24.7 ms ] threadi looked back through my blog and found this comment - http://www.acooke.org/cute/TermitevEr0.html
"Even when Termite works (and I couldn't get it to work reliably), it differs in functionality compared to Erlang. A single Gambit instance is a single process - its "threading" is implemented using continuations - and so (unlike Erlang) it cannot automatically use a dual core. ... [I]f you want a system that just works, use Erlang.
Erlang worked that way from the 80s until 2006, when it started supporting SMP in R11B.
http://github.com/rvirding/lfe
If you like lisp, and you like Erlang, I think that it is the way to go. It compiles to .beam files and runs on the regular VM. I have yet to use it for anything 'serious' but in the toy projects that I have used it for it has been quite good.
All that it really needs is more people using it.
http://vlisivka.pp.ua/uk/erlang_sh
I remember looking at candygram a while ago (erlang style message passing for python) and reading that a 'process' uses the OS's underlying thread so you can't scale the number of processes like you could on erlang.
Not that it's been a bottleneck for me but I'm just curious.