The Curious Failure of Functional Programming for Parallel Applications

Long title, but it is interesting how functional programming has mostly failed to gain traction in parallel and concurrent applications. People think that functional programming should become more popular as we do more and more parallel programming, but that doesn’t happen. As an example this blog post made the rounds recently which has this quote in it:

However, the key to multicore programming is controlling mutation. This is why functional languages have been steadily gaining ground in concurrency and parallelism.

Which I would disagree with. Not the controlling mutation part, but the steadily gaining ground part. Let’s look at a few examples:

Read the rest of this entry »