Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <blockquote> <p>Can Haskell provide some of the benefits of Node.js, namely a clean solution to avoid blocking I/O without having recourse to multi-thread programming?</p> </blockquote> <p>Yes, in fact events and threads are unified in Haskell. </p> <ul> <li>You can program in explicit lightweight threads (e.g. millions of threads on a single laptop).</li> <li>Or; you can program in an async event-driven style, based on scalable event notification.</li> </ul> <p>Threads are actually <a href="http://research.google.com/pubs/archive/36841.pdf" rel="noreferrer">implemented in terms of events</a>, and run across multiple cores, with seamless thread migration, with documented performance, and applications.</p> <p>E.g. for</p> <ul> <li>massively <a href="http://www.galois.com/blog/2010/06/14/orc-in-haskell-now-on-hackage/" rel="noreferrer">concurrent job orchestration</a></li> <li>concurrent collections <a href="http://software.intel.com/en-us/blogs/2010/06/24/haskell-cnc-new-paper-available-tests-on-32-and-48-cores/" rel="noreferrer">scaling on 32 or 48 cores</a></li> <li>tool support for profiling and debugging <a href="http://research.microsoft.com/en-us/projects/threadscope/" rel="noreferrer">multi-threaded/multi-event programs</a>.</li> <li>high performance <a href="http://snapframework.com" rel="noreferrer">event-driven web servers</a>.</li> <li>interesting users: <a href="http://www.starling-software.com/misc/icfp-2009-cjs.pdf" rel="noreferrer">such as high-frequency trading</a>.</li> </ul> <p><em>Concurrent collections nbody on 32 cores</em></p> <p><img src="https://i.stack.imgur.com/kUfr9.jpg" alt="alt text"></p> <p>In Haskell you have both events and threads, and as it is all events under the hood.</p> <p><a href="http://research.google.com/pubs/archive/36841.pdf" rel="noreferrer">Read the paper</a> describing the implementation.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload