I didn't really think Haskell was in the running for things like message passing, but these results (I'm looking at the Linux ones which are 4-5 times better than anything else) have made me question this. Some poking around has led me to Cloud Haskell, which really just seems to be a collection of useful well-written distributed-systems related libraries (serious kudos to Well-Typed and Tweag I/O for their work on this and static pointers).
My experience with Actors and message passing is derived from my use of Akka. I'm trying to understand what Cloud Haskell is able to do to scope out whether I want to use it for a potential project where scalability, efficiency, and reliability are important. So:
- Does it support Actors? If not, what is the equivalent abstraction? How does it handle message passing / lost messages?
- How does it scale compared to Akka? Roughly how much better/worse is it in memory use and latency?
- How does it scale to multiple nodes (as in how simple is it to scale to multiple nodes)?
- How is it fault tolerant?
I realize this question is a bit broad, but I reckon that if anyone has some experience with Cloud Haskell, they'll probably be able to rattle off all of these answers very easily - and the question will be more useful to those searching general information about Cloud Haskell vs. Akka in the future.