Comments:"Design Philosophy"
URL:http://paulgraham.com/design.html#hn
I chose images from 1973 deliberately. It's easier to tell good design from bad when you're not looking at current fashions. (Try looking at the haircuts in an old high school yearbook.)
Good design is timeless, and if you want something timeless you can't pander to the limitations of some hypothetical "average" user. It's too vague a target. It's also a moving target: the average user might not be as stupid as you think.
Look what happened with the 911. It's so obviously superior to the Cadillac that a child could tell it's better. And so, by the 1980s, even the drug dealers that the Cadillac was designed for wanted 911s instead.
The same thing happens in languages. The great languages have been the ones that good programmers designed for their own use-- C, Smalltalk, Lisp. The languages that were consciously designed for "average" programmers (Cobol, Pascal, Ada) have tended to be evolutionary dead ends.
The only reliable plan is to design for performance. Performance doesn't mean speed; that's taking the metaphor too literally. Speed counts, but a programming language is first of all a tool for thinking in. We want thinking in Arc to feel like driving a 911.
(I'm not claiming it will, just that that's the target.)