
On Mon, Jul 5, 2010 at 6:12 AM, Ertugrul Soeylemez
Felipe Lessa
wrote: On Sat, Jul 3, 2010 at 9:25 AM, Ertugrul Soeylemez
wrote: Haskell provides a lot of low level glue like laziness, currying and other very helpful language features. But what is different in Haskell is that it doesn't seem to provide any high level glue like other languages do, especially when it comes to the IO world. There is a somewhat powerful module system, but nothing to bring modules and the objects they define together in a consistent way.
When I first read this paragraph, I thought: "STM to the rescue!". STM is one of the best concurrent world glues, IMHO.
I found that I get along with the basic concurrency constructs. STM may be handy in a few applications, but in none that I write.
STM has the same basic concurrency constructs, but they are safe to use. MVars and everything derived from them have tricky semantics that can fail in catastrofic ways. Neil Mitchell was recently trying to find a subtle bug in his code because of MVars and Chans. Cheers! -- Felipe.