Last updated November 05, 2009 17:18, by Tim Bray
Feedicon  
<h1> Late-2009 Concurrency Linkography </h1> __TOC__ I'm dumping in a ton of concurrency-related links that I've been absorbing, will build a structure for them as I go along. This is on a wiki not my blog because it could benefit from input from more than one person. == Problem/Solution Overview == [http://jacobian.org/writing/snakes-on-the-web/#s-concurrency Snakes on the Web] is a general survey on issues of Web development, but this link is to a section called "Concurrency" which I think is a nice statement of the general problem. [http://www.slideshare.net/twleung/a-survey-of-concurrency-constructs A Survey of Concurrency Constructs] is Ted Leung's OSCON 2009 address. Ted follows up in [http://www.sauria.com/blog/2009/10/05/the-cambrian-period-of-concurrency/ The Cambrian Period of Concurrency]. [http://www.javaconcurrencyinpractice.com/ Java Concurrency in Practice] by Brian Goetz et al. I haven't read this but everyone says it's the standard reference for thread-centric concurrent-programming issues. [http://java.ociweb.com/mark/stm/article.html Software Transactional Memory] by Mark Volkmann. Focuses on STM and specifically the Clojure implementation, but has a helpful overview of lock- and actor-based approaches too. [http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.pdf The Landscape of Parallel Computing Research: A View From Berkeley] (PDF). Discusses hardware as well as software, and proposes a set of 13 benchmarks which might be useful stand-ins for a variety of application classes. [http://software.intel.com/en-us/articles/technical-books-for-multi-core-software-developers/ Technical Books for Multi-Core Software Developers] at software.intel.com, a bibliography of concurrent-programming books. [http://macton.smugmug.com/gallery/9114809_C9awM#P-1-12 QuickSort Is Not a Concurrent Algorithm] by Mike Acton; a good example of thinking about concurrency at a larger scale, presented as a white-board/PostIt lecture. == Language Comparisons == [http://www.infoq.com/interviews/armstrong-peyton-jones-erlang-haskell Joe Armstrong and Simon Peyton Jones discuss Erlang and Haskell] Tons of interesting stuff; Armstrong asserts that the core of Erlang isn't so much the concurrency as the error handling. Peyton-Jones notes that just because you're functional doesn't mean that you get concurrency for free. If you say a(whatever) + b(whatever) when both are side-effect free, in principle you can do a and b in different processes; but the admin overhead will quickly outweigh the concurrency gain if done naively. P-J on some Erlang feature: "Sinfully easy" [http://www.starling-software.com/en/blog/drafts/2009/09/27.succ-java-1-common-ground.html succ Java 1: Common Ground] by Curt Sampson compares idioms from Clojure, Groovy, Ruby, Scala, and Haskell. . [http://blog.thinkrelevance.com/2008/9/10/java-next-4-immutability Java.next #4: Immutability] By Stuart Halloway; Ruby/Groovy/Scala/Clojure. [http://www.infoq.com/news/2008/06/scala-vs-erlang The multicore crises: Scala vs. Erlang] by Niclas Nilsson. Two Clojure-centric discussions of concurrency and state issues: [http://clojure.org/state Values and Change - Clojure's approach to Identity and State] and [http://bc.tech.coop/blog/081201.html Clojure could be to Concurrency-Oriented Programming what Java was to OOP]. == Specific Language Coverage == === Clojure === [http://java.ociweb.com/mark/clojure/article.html Clojure - Functional Programming for the JVM] by Mark Volkmann, nice compact run through Clojure. [http://wiki.jvmlangsummit.com/Keynote_-_Hickey Rich Hickey's Clojure Keynote] from the 2009 JVM Language Summit. Notes by @al3x and link to slides. From the context, I suspect that [http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey Persistent Data Structures and Managed References] is similar in its content. Very impressive deep-dive. === Haskell === [http://www.se-radio.net/podcast/2008-08/episode-108-simon-peyton-jones-functional-programming-and-haskell Simon Peyton Jones on Functional Programming and Haskell] Audio podcast. Quote: "Robust guarantees of where impurity is happening." [http://book.realworldhaskell.org/ Real-World Haskell] by Bryan O'Sullivan, Don Stewart, and John Goerzen. [http://learnyouahaskell.com/ Learn You a Haskell] Light-hearted walk through Haskell. === Scala === [http://article.gmane.org/gmane.comp.lang.scala/13300/ Symbol ouchiness] Flaming design of Scala as regards concurrency engineering. But see comments to [http://blog.thinkrelevance.com/2008/9/10/java-next-4-immutability Java.next #4] cited above. === Erlang === [http://www.vimeo.com/6699769 Functional Programming at Facebook] There's a touch of Haskell but this is mostly an Erlang success story. Note: this is from Malcolm Wallace's [http://www.vimeo.com/album/128851 CUFP 2009] video collection; the others, I thought, mostly highlighted the glaring absence of real commercial applications. == Wide Finder == A project I ran in 2007 and 2008 to investigate the application of concurrency techniques to a boring logfile-processing job. My conclusion was that dramatic gains in performance were achievable, but that the cost in programming difficulty was too high. [http://www.tbray.org/ongoing/When/200x/2007/09/20/Wide-Finder The Wide Finder Project] First cut, with TOC. [http://www.tbray.org/ongoing/When/200x/2008/05/01/Wide-Finder-2 Wide Finder 2] Second cut, with TOC. [http://wikis.sun.com/display/WideFinder/Wide+Finder+Home Wide Finder Home] On wikis.sun.com. [http://www.eigenclass.org/hiki/widefinder2-conclusions Wide Finder 2: processing 42GB of httpd logs, 300X faster than naïve Ruby] by Mauricio Fernandez. [http://girtby.net/archives/2008/07/03/wide-finder-2-the-widening/ Wide Finder 2: The Widening] by Alastair Rankine.
  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2010, Oracle Corporation and/or its affiliates
(revision 20120518.3c65429)
 
 
Close
loading
Please Confirm
Close