Architects know that some kinds of design problems are more personal than others. One of the cleanest, most abstract design problems is designing bridges. There your job is largely a matter of spanning a given distance with the least material. The other end of the spectrum is designing chairs. Chair designers have to spend their time thinking about human butts.
Software varies in the same way.
Designing algorithms for routing data through a network is a nice, abstract problem, like designing bridges. Most of us hate to acknowledge this. Designing systems of great mathematical elegance sounds a lot more appealing to most of us than pandering to human weaknesses. But elegance is not an end in itself. And when I say languages have to be designed to suit human weaknesses, I don't mean that languages have to be designed for bad programmers.