Sliding up the banister

Sneaking up on functional programming

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.

2008-02-17 Posted by joelneely | programming languages | | No Comments Yet

XMonad Videos

There’s a very nice talk which seems tailor-made for anyone who has seen Simon Peyton-Jones’ two-part talk on Haskell and XMonad (with slides avaliable) and wanted more, especially of the “how did they do it?” variety.

XMonad is now at 0.6.

2008-02-17 Posted by joelneely | Haskell | | No Comments Yet