- mbp: I really agree on threads vs. state machines. I'm curious about where the idea that shared-everything threading is a Good Thing came from, and particularly why it keeps getting adopted for high-level applications like user interfaces. In particular, I've been digging into state-machine based concurrent programming in Emacs Lisp in the past year and finding it very pleasant - now my mind boggles at the idea of adding traditional threads to an Emacs-like editor (which is often seen on wishlists.)
I also think that some of the work on building new abstractions for non-sharing explicitly-communicating state machines is really wonderful. I bet you'd enjoy the book Communicating Sequential Processes by C.A.R. Hoare, which starts from bare bones state machines and works out some very elegant (and practical) ways to make them communicate and synchronize.
I got a new laptop yesterday, quite an upgrade from my 3 year old thinkpad: 5x CPU clock speed, 5x memory, 10x disk space at 3x speed, 1600x1200 vs. 1024x768, etc.
But where's the fun in new computers these days? The hardware all works fine in Linux without trouble shooting, and is even copiously documented; being used to distcc means "make" output doesn't scroll any faster than on the old machine; and with Debian it only takes 10 seconds to install j-random-program when you notice you haven't got it. What used to be a month's distraction only took one evening this time. Maybe the time is ripe for another operating system to take off with a similar rallying cry to the original Linux announcement :-)