Issues in Concurrent Language Design

I have been thinking about the design of concurrent programming languages for the past ten years, or so, and have developed some strong opinions. My guiding motivation has been to make the task of writing correct and robust concurrent programs easier. In this talk, I'll examine a number of issues that I think are significant, and describe how I think they should be addressed. I'll conclude with a discussion of Concurrent ML, which reflects this design philosophy, and an example of its use in practice.