I hear you, my friend.<div><br></div><div>What I love of Haskell is that a lot of algorithms are very clean to express and understand compared to, say, Lisp or C. Compared to Lisp, function manipulation is also very clean (even compared to Racket). A great plus is also type inference.</div>

<div><br></div><div>The bad side is that direct translation of algorithms are almost always very slow and the work needed to make them perform is very mind bending. I sometimes feel as if I am doing the work of a compiler/optimizer and wonder if a computer program can do this translations.</div>
<div><br></div><div>In the correct hands (the Simons, Don Stewart, etc) I am sure Haskell is a killer, but in hands of lowly, imperative mortals it is a time bomb. A good example of this is narrated in <a href="http://www.mayofamily.com/RLM/txt_Clarke_Superiority.html">Clarke&#39;s Superiority</a>.</div>
<div><br></div><div>I am a total Haskell newbie, so please ignore me if my opinion sounds stupid, but I think I read once that Peyton-Jones said that the Haskell of the future will be strict.</div><div><br></div><div>Thanks!</div>
<div><br><br><div class="gmail_quote">2012/11/29 Fixie Fixie <span dir="ltr">&lt;<a href="mailto:fixie.fixie@rocketmail.com" target="_blank">fixie.fixie@rocketmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:12pt;font-family:times new roman,new york,times,serif"><div><span style="font-family:arial,helvetica,sans-serif">Hi all haskellers</span></div>

<div><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div style="font-style:normal;background-color:transparent"><span style="font-family:arial,helvetica,sans-serif">I every now and then get the feeling that doing my job code in Haskell would be a good idea.</span></div>

<div style="font-style:normal;background-color:transparent"><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div style="font-style:normal;background-color:transparent"><span style="font-family:arial,helvetica,sans-serif">I have tried a couple of times, but each time I seem to run into performance problems - I do lots of heavy
 computing.</span></div><div style="font-style:normal;background-color:transparent"><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div style="font-style:normal;background-color:transparent"><span style="font-family:arial,helvetica,sans-serif">The problem seems to be connected to lazy loading, which makes my programs so slow that I really can not show them to anyone. I have tried all tricks in the books, like !, seq, non-lazy datatypes...</span></div>

<div style="font-style:normal;background-color:transparent"><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div style="font-style:normal;background-color:transparent"><span style="font-family:arial,helvetica,sans-serif">I was poking around to see if this had changed, then I ran into this forum
 post: <a href="http://stackoverflow.com/questions/9409634/is-indexing-of-data-vector-unboxed-mutable-mvector-really-this-slow" target="_blank">http://stackoverflow.com/questions/9409634/is-indexing-of-data-vector-unboxed-mutable-mvector-really-this-slow</a></span></div>

<div style="font-style:normal;background-color:transparent"><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div style="font-style:normal;background-color:transparent"><span style="font-family:arial,helvetica,sans-serif"><span>The last solution was a haskell program which was in the 3x range to C, which I think is ok. This was in the days </span><font><span style="line-height:18px">of ghc 7.0</span></font></span></div>

<div style="font-style:normal;background-color:transparent"><font><span style="line-height:18px;font-family:arial,helvetica,sans-serif"><br></span></font></div><div style="font-style:normal;background-color:transparent">
<font><span style="line-height:18px;font-family:arial,helvetica,sans-serif">I then tried compile the programs myself (ghc 7.4.1), but found that now the C program now was more that 100x faster. The ghc code was compiled with both O2 and O3, giving only small differences on my 64-bit Linux box.</span></font></div>

<div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif"><font><span style="line-height:18px;font-family:arial,helvetica,sans-serif"><br></span></font></div><div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif">

<font><span style="line-height:18px;font-family:arial,helvetica,sans-serif">So it seems something has changed - and even small examples are still not safe when it comes to the lazy-monster. It reminds me of some code I read a couple of years ago where one of the Simons actually
 fired off a new thread, to make sure a variable was realized.</span></font></div><div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif"><font><span style="line-height:18px;font-family:arial,helvetica,sans-serif"><br>

</span></font></div><div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif"><font><span style="line-height:18px;font-family:arial,helvetica,sans-serif">A sad thing, since I am More that willing to go for Haskell if proves to be usable. If anyone can see what is wrong with the code (there are two haskell versions on the page, I have tried the last and fastest one) it would also be interesting.</span></font></div>

<div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif"><font><span style="line-height:18px;font-family:arial,helvetica,sans-serif"><br></span></font></div><div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif">

<font><span style="line-height:18px;font-family:arial,helvetica,sans-serif">What is your experience, dear haskellers? To me it seems this beautiful language is useless without a better lazy/eager-analyzer.</span></font></div>

<div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif"><font><span style="line-height:18px;font-family:arial,helvetica,sans-serif"><br></span></font></div><div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif">

<font><span style="line-height:18px;font-family:arial,helvetica,sans-serif">Cheers,</span></font></div><div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif"><font><span style="line-height:18px;font-family:arial,helvetica,sans-serif"><br>

</span></font></div><div style="font-size:16px;font-style:normal;background-color:transparent;font-family:arial,helvetica,sans-serif"><font><span style="line-height:18px;font-family:arial,helvetica,sans-serif">Felix</span></font></div>

</div></div><br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div>