Chapter 15. Design and Research

Visitors to this country are often surprised to find that Americans like to begin a conversation by asking “what do you do?” I’ve never liked this question. I’ve rarely had a neat answer to it. But I think I have finally solved the problem. Now, when someone asks me what I do, I look them straight in the eye and say, “I’m designing a new dialect of Lisp.” I recommend this answer to anyone who doesn’t like being asked what they do. The conversation will turn immediately to other topics.

I don’t consider myself to be doing research on programming languages. I’m just designing one, in the same way that someone might design a building or a chair or a new typeface. I’m not trying to discover anything new. I just want to make a language that will be good to program in.

The difference between design and research seems to be a question of new versus good. Design doesn’t have to be new, but it has to be good. Research doesn’t have to be good, but it has to be new. I think these two paths converge at the top: the best design surpasses its predecessors by using new ideas, and the best research solves problems that are not only new, but worth solving. So ultimately design and research are aiming for the same destination, just approaching it from different directions.

What do you do differently when you treat programming languages as a design problem instead of a research topic?

The biggest difference is that you focus more on the user. Design begins by asking, who ...

Get Hackers & Painters now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.