7 comments

[ 3.1 ms ] story [ 16.5 ms ] thread
Does anyone have an ideas for practical applications for distributed haskell? It seems like a this would thrive in an application that combines multiple concurrency models.
Yeah, that's the idea I think. Multiscale parallelism: distributed parallelism across multiple nodes, shared-memory parallelism on each (multicore) node, all in one language.
Most of all done in library, as opposed to language or runtime feature.
You can do that in Haskell because it compiles to fast code the CPU can understand. Like Scala, this means you can get away with the library, but unlike Scala, Haskell has a computation model which make library-based extensions feel as if they are part of the language.

Ocaml has had success in this area as well, but the base language is a bit less pliable compared to Haskell, so it does not feel as fluent.

What I don't like about the shared-local, message-pass-global approach is that you have two kinds of concurrency in the same application. I'd much rather go with one, and in that case it must be the latter.

If you don't mind me asking, what are the disadvantages of having this as a feature in the language/runtime (as opposed to providing it as a library). Is it that it keeps the language simple? Also, can you give a bit some examples of the advantages Haskell has over Scala/Ocaml for the library based approach?