The concurrency crisis is upon us: Moore's Law will continue only if we learn to write parallel programs. This is important enough you might expect it to show up in the mainstream press, and at last it is. From the 2 June 2011 issue of the Economist:
Meanwhile, a group of obscure programming languages used in academia seems to be making slow but steady progress, crunching large amounts of data in industrial applications and behind the scenes at large websites. Two examples are Erlang and Haskell, both of which are “functional programming” languages.
Such languages are based on a highly mathematical programming style (based on the evaluation of functions) that is very different from traditional, “imperative” languages (based on a series of commands). This puts many programmers off. But functional languages turn out to be very well suited to parallel programming. Erlang was originally developed by Ericsson for use in telecoms equipment, and the language has since been adopted elsewhere: it powers Facebook’s chat feature, for example. Another novel language is Scala, which aims to combine the best of both functional and traditional languages. It is used to run the Twitter, LinkedIn and Foursquare websites, among others.
How cool is this? Barney Stratford, Journal of Functional Programming, 21(3), May 2011.
In the design of railway track layouts, there are only a small number of geometric configurations that are used in practice, and a number of constraints as to how those configurations can be fitted together to create a whole layout. In order to solve these problems, we construct a Haskell combinator library. The library has been used for the design of real-world track layouts.
The RSA has a series of videos cleverly animated from lectures. I would love to illustrate a lecture this way! Spotted by Maurice Naftalin.