"And yet, there are signs that the current set of programming
languages and language features are inadequate for both pressing
and emerging problems. For example, support for concurrency is
woefully deficient. Hardware is moving rapidly down the path of
multiple cores, but software already lags far behind. Few
applications take full advantage of the computing power available
to them.
"To be sure, writing concurrent software is hard, but for all
the wrong reasons. Humans are perfectly capable of parallelism (as
anyone who has watched TV while reading email, eating a sandwich,
and drinking a soda knows). Computers are perfectly capable of
parallelism, too. But the available abstractions for humans to tell
computers how to behave concurrently are hopelessly primitive. What
concurrent programming needs is a flash of inspiration like the one
that turned hash tables from an abstract theoretical feature into
an easy to use, everyday, don't-even-think-about-it Dictionary in
Python or Hash in Perl."