Note that there are some explanatory texts on larger screens.

plurals
  1. POMulti-Core and Concurrency - Languages, Libraries and Development Techniques
    text
    copied!<p>The CPU architecture landscape has changed, multiple cores is a trend that will change how we have to develop software. I've done multi-threaded development in C, C++ and Java, I've done multi-process development using various IPC mechanisms. Traditional approaches of using threads doesn't seem to make it easy, for the developer, to utilize hardware that supports a high degree of concurrency.</p> <p>What languages, libraries and development techniques are you aware of that help alleviate the traditional challenges of creating concurrent applications? I'm obviously thinking of issues like deadlocks and race conditions. Design techniques, libraries, tools, etc. are also interesting that help actually take advantage of and ensure that the available resources are being utilized - just writing a safe, robust threaded application doesn't ensure that it's using all the available cores.</p> <p>What I've seen so far is:</p> <ul> <li><a href="http://www.erlang.org/" rel="nofollow noreferrer">Erlang</a>: process based, message passing IPC, the 'actor's model of concurrency</li> <li><a href="https://github.com/dramatis/dramatis" rel="nofollow noreferrer">Dramatis</a>: actors model library for Ruby and Python</li> <li><a href="http://www.scala-lang.org/" rel="nofollow noreferrer">Scala</a>: functional programming language for the JVM with some added concurrency support</li> <li><a href="http://clojure.org/" rel="nofollow noreferrer">Clojure</a>: functional programming language for the JVM with an actors library</li> <li><a href="http://code.google.com/p/termite/" rel="nofollow noreferrer">Termite</a>: a port of Erlang's process approach and message passing to Scheme</li> </ul> <p>What else do you know about, what has worked for you and what do you think is interesting to watch?</p>
 

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