Is Intuitive Always Good?


Here's a good, short artcile from Raganwald on the trade-off between intuitiveness and programming languagge expressiveness. Most of the article is a few quotes. The meat is at the bottom.

Is Ruby's for loop an improvement over Java? By how much? Ruby's big win over Java in that regard is the ease with which you can use Enumerable's collect, select, detect, and inject methods. Which, of course, are not familiar to the programmer with a grounding in for loops. They require study to understand. But once understood, they make code easier to read thereafter.

When you're building a new notation, power doesn't come from replicating the familiar. Another way to look at this: if learning a new language isn't uncomfortable or a little painful--if there's no learning curve to speak of--you aren't gaining much.