Andrew Lentvorski wrote: > Christopher Smith wrote: >> Frankly, by treating mutation as a special case, it puts the focus in >> the right place, where most of the bugs come from, simplifies >> concurrency, transactions, etc. It also allows you to do the kind of >> transformations of functions that really end up being helpful. >> >> It does still have some rough edges, as the language still needs some >> maturing, but there is nothing about it that makes it inherently bad >> beyond programmers having difficulty with functional languages in >> general. > > I'm not convinced yet. I keep watching Haskell, but it seems that quite > a few people launch into a project using Haskell and then shift to > something else after a bit because it winds up having a touch too much > friction. A good example is: > > http://wagerlabs.com/2006/01/01/haskell-vs-erlang-reloaded
I remember reading this when it first came out. I think in a lot of ways this guy wasn't comfortable with the Haskell paradigm. He seemed to be wanting a dynamically typed language, and as long as you are looking at the problem that way, a statically typed language is gonna hurt you bad. He also had problems with memory consumption which tends to go better with a) newer versions of GHC and b) programming Haskell "the Haskell Way". I have observed on many occasions that when things weren't efficient in Haskell it was because I was formulating my code the wrong way. Same point goes for his problems with serialization. >>>> Followed by Erlang. >>> I just wish it had a JVM-based version. It would give me a lot more >>> confidence in its long term prospects. >> >> JVM's have their own issues with concurrency. ;-) I'll go with Erlang's >> runtime. > > I'd rather have *both*. My point is that there is a fair bit of impedance mismatch between Erlang's runtime model and the JVM's, particularly when it comes to concurrency. Believe it or not the JVM is even more troublesome than the standard POSIX runtime. --Chris -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg
