<br><div class="gmail_quote">On Fri, Jul 3, 2009 at 8:15 AM, Anthony Cowley <span dir="ltr">&lt;<a href="mailto:acowley@gmail.com">acowley@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><div class="im">&gt; For example, a runtime that could take advantage of<br>
&gt; multicore machines would benefit many more people that optimising<br>
&gt; floating point calculations. I love performance as much as the next<br>
&gt; guy -- my hard disk is littered with little compilers and so on -- but<br>
&gt; it really isn&#39;t that important in the grand scheme of things.<br>
<br>
</div>This is another area where I think many FP advocates tend to be a bit<br>
too glib. Being able to claim near linear performance scaling on<br>
today&#39;s 2-8 core machines is great, but to do so at the expense of<br>
10-100x slower performance compared to, let&#39;s say C, is a really tough<br>
sales pitch! Many functional languages are dealing with that today;<br>
Clojure is a particularly interesting case because it has Java as a<br>
ready point of comparison, and Java is not exactly incapable of<br>
reasonably expressing concurrent programs. I think Haskell makes a<br>
very strong case for itself by most definitely *not* ignoring<br>
single-threaded speed. If a functional language is within striking<br>
distance of C&#39;s performance, then I think it&#39;s fine to say that easier<br>
parallelism negates that difference. But if you&#39;re giving up orders of<br>
magnitude up front, then gains down the road have too much distance to<br>
make up.<br>
</blockquote><div><br>Hmm... are you sure people are claiming concurrency scaling will beat sequential speedup?  Maybe really fast FP such as ocaml or clean are making these claims, but I have not heard of it here.<br><br>
IMHO multicore is not meant to be &quot;faster&quot; - it&#39;s meant to do more things.  Ruby and javascript have proven that for many things you don&#39;t need speed.  And if you truly need speed, C might not even be fast enough and you&#39;ll need assembly.  But many apps need multi-threads, especially things like server apps.  In such instances, multicore is very important.<br>
<br>IMO this is a matter of priority and where best to stake down.  As Noel said, there aren&#39;t too many Matthew Flatts around, and my vote (if this is up for vote) would be to put the effort behind multicore than to improve sequential speed, since C already dominated that arena with many excellent reusable libs and can be binded (although not trivial), and multicore is where the world is going to be.  Let&#39;s skate to where the puck will be.<br>
<br>(and multicore is needed when you want to use FFI without blocking all other scheme threads).<br><br>Cheers,<br>yc<br><br></div></div>