While searching my archives for a very very old document, I found a very old document, a "Research Statement" from 2002, written as part of the hellish requirements of searching for a job.

Here's an excerpt that seems as relevant today as it was a decade ago when I wrote it:

"Through my research since the early 1980s I have become a firm believer in the power of concurrent programming for the writing of system software. Modern systems run in a world that includes networks, multiple input and output streams, graphical devices, and user interfaces, and that world is well modeled as a set of independently executing, communicating processes. The best way to connect to that model is by expressing the control software the same way. Hoare's CSP was a good starting point for this way of thinking; I have worked (along with many others) at applying Hoare's ideas to systems programming. But too much of the public discussion of concurrency focuses on the precise definition of processes and threads, when the critical aspect is how those processes communicate. Get the communication model right and problems of synchronization, deadlock, and even overall design become not only tractable but easy. Approached properly, concurrency is not a problem to be overcome, but rather a clean and productive approach to the writing of software."
Shared publiclyView activity