Brian McCallister tells a story about why clarity might be important in a programming language: "It reminds me, a great deal, of a conversation I had with a really bright guy who re-implemented (okay, actually pre-implemented, or co-implemented) something very popular in the open source world (written in C) in ocaml. After beating on it for a while he concluded that the basis for the whole design was broken, but he attributes being able to see why the whole design was broken to the expressiveness of the language, not to any abstract conceptual model. The C version is in widespread use, releases bug fix versions quite frequently, and a lot of people wonder if it will ever actually be stable." - Expressiveness Matters This reminds me of Jonathan Sobel's classic paper "Is Scheme Faster than C?". When I linked to that paper here, Jonathan left the following comment: "It's still true. In the years since I wrote that little blurb, I have used the same kinds of techniques for everything from programming languages research (such as http://www.cs.indiana.edu/~jsobel/Recycling/recycling.pdf) to high-reliability, high-performance systems (even at the device driver level) in commercial systems. It still works. If your solution is clear enough, it will be obvious how to optimize it; if your solution is a prematurely optimized mess, you won't be able to figure out how to do anything to make it significantly faster."...