3 comments

[ 471 ms ] story [ 482 ms ] thread
Oh, its not so bad as the article makes it out to be. As a concurrent/parallel programming enthusiast (but by no means expert), I've been following the developments in this area pretty closely (blogs, articles, books, SIGPLAN papers, etc) .

IMHO the problem is that most programmers are so ingrained in their technologies of choice that they get overwhelmed and discouraged when trying fundamentally different paradigms and languages, so they get stuck with their C's and their Javas and whatever other languages are popular, but not terribly good at parallel programming. [1]

For example, I hear that Haskell, Erlang and Clojure do a fairly good job and managing the complexities of concurrent and parallel programming - why aren't more people using these languages then? [2]

The real win over the complexity of programming parallel software, IMHO, comes from the dataflow paradigm, which can provide auto-parallelism at a much larger scale than even functional languages (which can only do this when they do not modify state). For some reason dataflow doesn't seem to get much attention though, yet available research suggests that it can, indeed, solve the parallelism problem - or at least, a lot more than other languages have so far. [3]

For what its worth, the programming language used by Airbus and the Eurocopter is a dataflow language - though I don't know if it automatically parallelizes or not.

[1] Disclaimer: this happens to me too.

[2] Disclaimer 2: I have, so far, only tried one of the mentioned languages.

[3] Actually, the author agrees with me on this - Project COSA is, essentially, a dataflow system and was actually a big influence for me, though I'm not sure that it (modeling a nervous system, of sorts) is the way I'd handle it, but then again, hes probably more qualified than I am.

@[2] I think there's 6 or 7 leading families of functional lang's right now:

- you mention Haskell, Erlang , Clojure,

- plus scala, F#, ML family(ocaml), scheme family, common lisp family

- lots of complaints on tooling: clojure's emacs and vim plugins engender a lot of questions on IRC and the google gropu, same for scala's eclipse, netBeans and intellij plugins (many folk say, or said netBeans caused the least anguish for both languages, or emacs /ELPA, swank-clojure)

- books: Erlang, scala and haskell have excellent, up-to-date books, clojure they have several in preparation (the Fogus/Houser Manning EAP beta book looks really promising).

- open source/freely available content:

http://www.realworldhaskell.org/blog/

http://www.freetechbooks.com/functional-programming-f34.html

http://programmingscala.com/

http://books.couchdb.org/