Mencius Moldbug’s article What’s wrong with CS research gets it completely right on programming languages:
Choosing the best notation is the entire problem of programming language design, and this problem is neither mathematical nor scientific. A programming language is a user interface for programmers, and if you can reduce UI design to math, science, or any formal process, call Apple, not me.
I have noted before that there has been a lot of research on type systems but very few studies on programming languages usability, and this article provides a good explanation for it.
Although, as a small criticism, he gets dynamic higher-order programming completely wrong.