Programming languages are an interface between people and computers. Many have explored one side or the other. In this talk, I will illustrate the insights that can be gained by exploring both. For example, I will show how understanding human behavior can solve undecidable problems, and how understanding mathematical models can predict human expectations. I will discuss how this work was inspired by and adopted by the Ceylon design team at Red Hat and the Kotlin design team at JetBrains.