Programming Languages as Communication
I have been reading The Art of Doing Science and Engineering by Richard W. Hamming recently and I found the following thought really interesting.
What I wanted to know was how the job of communication can be efficiently accomplished when we have the power to design the language, and when only one end of the language is humans, with all their faults, and the other is a machine with high reliability to do what it is told to do, but nothing else
All programming languages are a compromise between being understandable by machines and being understandable by humans. Designing a good programming language requires as much of an undertanding of how humans communicate as it does the machine.