There is suddenly a lot of interest in functional languages recently. The two advantages are
- Writing a DSL (Domain Specific Language)
- Writing concurrent code
The languages that seem to come up are:
I'm not particularly interested in DSL (despite my last post on code generators), however as CPUs contain more and more cores, we'll need a way to safely write multithreaded code.
The Clojure project has an interesting post on its approach on simplifying multithreaded code.
Erlang handles concurrency by only having local variables and providing a way to send messages to and from other threads.
Lastly, MPI is a .Net library for distributed processing where the same program executes multiple times and each instance communicates with each other using message passing which sounds very Erlang-like.