Simon Peyton-Jones and Simon Marlow's work on software transactional memory offers a very interesting alternative to traditional lock-based or lock-free approaches to implementing concurrent programs. Their paper "Composable Memory Transactions" is a fascinating read: it isn't often that you see research that is simultaneously so practical and so beautiful.
I had read, and been impressed by, the STM paper a year or so ago. So I was happy to notice recently that:
- O'Reilly is publishing a book of essays by prominent software developers called Beautiful Code -- about, well, beautiful code. That should almost certainly be worth reading:
- Simon PJ's chapter in that book, "Beautiful Concurrency", is available online, and offers a more introductory-level treatment of the ideas behind STM.