This paper is an interesting meditation from Guy Steele, co-designer of Scheme and general language guru. When this talk was originally presented he was employed by Sun to guide the future evolution of the Java programming language.
While he takes about the design of languages, most or all of what he says applies just as well to the design of programs.
The PDF is an early form of the talk given at OOPSLA in 1998. 14 pages, 165K, non-technical.