Computer Scientist

My work on programming languages has always forced me to think in terms of what’s the interface? Is this a nice, simple thing? How do you trade off the expressive power versus the ease of use and so on? And this is very useful in the systems domain, as well as in the programming language domain.