Concision, Intuition, and Parsimony

Paul Graham seems to have reservations about Paul Prescod’s views on contrasting programming language design aspects:

Python’s goal is regularity and readability, not succinctness.

There’s also been a bit of a flame-war in the Scala community over the use of symbolic versus verbal notation, as in /: instead of foldLeft. Unfortunately that debate has seen many uses of the “I” word (intuition). The Wictionary definition begins “Immediate cognition without the use of conscious or rational processes.” I become skeptical as soon as that word enters a conversation about programming, because “intuitive” often strikes me as a synonym for “familiar”. Too often some variation of the phrase “that’s non-intuitive” seems to be a judgmental variant of “I’ve never seen that before”.

This also seems to connect with the principle of parsimony (often conflated with Zipf’s Law, but not always): frequency and cost of expression have an inverse relationship. Or, in clear text, “use short words oftenest”. Is it any surprise that when a person moves from one domain of discourse to another, that the shift in subject matter implies that there will be a shift in what things must be expressible economically? To apply the question to programming, should we assume that all programming language need to talk about the same concepts? Should things that are easy (economical and/or symbolic) to express in one language need to be similarly easy in all other languages?

Should experience with one language really dominate our expectations about notation in another language if the two languages really address different application domains or conceptual models of programming. I don’t think so.

Advertisements
Post a comment or leave a trackback: Trackback URL.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: