<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>Simon Marlow is a very smart guy, and knows what he's talking about.</div><div><br></div><div>Erlang doesn't really target the domain of parallelism, but to some</div><div>extent, you can roll your own. Your mileage will depend in part </div><div>on how heavy your jobs are, and there are some other interesting </div><div>differences between the Haskell approach and Erlang's approach.</div><div><br></div><div>- While you can do something similar to Erlang-style concurrency</div><div>  in Haskell, to a certain extent this has been a research area.</div><div>  Nowadays, you can play with Cloud Haskell [1], which closely </div><div>  mimicks Erlang's semantics (well, actually a proposed semantics</div><div>  for 'future Erlang'). Not least exception handling has long been</div><div>  a tricky issue to figure out, due to Haskell's strict type system.</div><div><br></div><div>- Haskell's main focus so far (I believe) has been what Simon calls</div><div>  deterministic parallelism. There is quite some promise that </div><div>  Haskell's type system will keep you sane when trying this style</div><div>  of programming, whereas in Erlang, you tend to end up treating</div><div>  it as an explicit coordination problem - quite doable, and better</div><div>  than in most other languages, but more error-prone than it </div><div>  could be in Haskell.</div><div><br></div><div>- Erlang's origin is telecoms, where systems are supposed to </div><div>  serve and evolve for many years in the field. This makes it </div><div>  important to support code evolution - given telecom uptime </div><div>  requirements, notably code evolution in a _running system_.</div><div>  Erlang's support for in-service code change is difficult to </div><div>  reconcile with a strict static type system, and I believe this </div><div>  feature is also absent from Cloud Haskell (at least I don't</div><div>  see it mentioned). If you're building server systems, this is </div><div>  a feature to die for.</div><div><br></div><div>- Haskell is a superb research language, and it has seen some </div><div>  success in commercial settings, but primarily in areas where it</div><div>  has been possible to maintain a very high skill level across the</div><div>  board in the design teams (I'm speculating here; I haven't </div><div>  actually verified it). Erlang, in contrast, has been picked up by</div><div>  companies across the globe and used in commercial products</div><div>  pretty much after self-study and experimentation. You might </div><div>  say (although (the) Simon(s) might flog me for this), that Erlang</div><div>  is quite easy to get into, whereas Haskell becomes easy once</div><div>  you've finished your PhD in Functional Programming. :)</div><div><br></div><div>- So basically, some of the smartest programmers in the world</div><div>  choose Haskell as their weapon, and much of the cutting-edge</div><div>  programming language research today is done in Haskell.</div><div>  Erlang is a great craftsman's tool for building robust distributed</div><div>  systems, with many of the niceties of Haskell, but much less of</div><div>  the academic rigour. When deep in the trenches, this is not </div><div>  always a bad thing. ;-)</div><div><br></div><div>BR,</div><div>Ulf W</div><div><br></div><div>[1] <a href="http://hackage.haskell.org/package/distributed-process">http://hackage.haskell.org/package/distributed-process</a></div><br><div><div>On 10 Oct 2012, at 18:06, Rustom Mody wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Wed, Oct 10, 2012 at 3:45 PM, Matthias Lang <span dir="ltr"><<a href="mailto:matthias@corelatus.se" target="_blank">matthias@corelatus.se</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Wednesday, October 10, Rustom Mody wrote:<br></div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Another thing: you write "under severe time-crunch", but that could<br>
mean "we need to ship a product in a very short time" or it could mean<br>
"the data has to be processed in a very short time".<br>
<br>
Matt<br>
</blockquote></div><br>Well mainly the latter<br>But the former is also true. (When is it ever not :-))<br>My concern is that there is some desire to try out erlang which may be fine... However I am wondering whether the difference between concurrency and parallelism has not been appreciated.<br>
<a href="http://ghcmutterings.wordpress.com/2009/10/06/parallelism-concurrency/">http://ghcmutterings.wordpress.com/2009/10/06/parallelism-concurrency/</a><br>is a haskell implementers view of the terminology<br>I wonder where erlang fits in on this<br>
<br clear="all">Rusi<br><br>
_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>http://erlang.org/mailman/listinfo/erlang-questions<br></blockquote></div><br><div apple-content-edited="true">
<div><div>Ulf Wiger, Co-founder & Developer Advocate, Feuerlabs Inc.</div><div><a href="http://feuerlabs.com">http://feuerlabs.com</a></div></div><div><br></div><br class="Apple-interchange-newline">
</div>
<br></body></html>