On Nov 30, 2019, at 16:15, Steven D'Aprano email@example.com wrote:
On Sat, Nov 30, 2019 at 11:54:35AM -0800, Andrew Barnert via Python-ideas wrote:
To an experienced C programmer, both += and ++ are intuitive. But to a novice who’s never programmed, neither one is intuitive.
Can we have a moratorium on the use of the word "intuitive" until people learn to stop misusing it for "things people have learned to expect"?
It’s not “things people have learned to expect”, it’s “things people apprehend without having to think consciously”. Which is what “intuitive” means. It doesn’t matter whether that intuition is pre-wired instinct or conditioning or intellectual learning or some neurotic mistake.
Neither += or ++ are intuitive to C programmers, or anyone else. You wouldn't say that the meaning of "python" was intuitive would you? Or driving a car?
Yes. There are books about intuitive design that talk about why you wouldn’t make a new left-side-drive car with the gas pedal on the left. Why? Because that would violate drivers’ intuitions.
intuitive adj 1: spontaneously derived from or prompted by a natural tendency; "an intuitive revulsion" 2: obtained through intuition rather than from reasoning or observation [syn: intuitive, nonrational, visceral]
What dictionary gives “intuitive” as a synonym for itself?
The first definition on Wiktionary is “Spontaneous, without requiring conscious thought”.
You used “The reader has become accustomed to the symbol, and understands it without having to consciously think about it” as a description of whatever-it-is to contrast with intuition, but it is intuition. When you apprehend something without being conscious of how you got there, that’s intuition.
Even using your definition: How does a C programmers understand that `x += 2`? It’s not by reasoning or observation; it’s by knowing what += means without having to reason it through.
(It’s definitely not a conditioned response, as you suggested later, unless you’re a hardcore behaviorist who believes that things like responding in a conversation or writing code are directly mediated by external stimuli.)
I think you are talking about reading of words/symbols which, through long use, have become second-nature.
I was quoting Stephen, who wrote a whole long email explaining what he was talking about. Admittedly he did use scare quotes, but I don’t think they were needed.
Since we’re talking about programming languages, it’s worth looking next door at how mathematicians (and philosophers of math) use the word. When they talk about the need to get a new construction into their intuition so they can play with it, they’re not talking about needing a time machine to go back and change human history so they will have been born pre-wired to get this construction “naturally”, they’re talking about learning it to the point where using it feels the same as the things that were pre-wired, like (maybe) counting. When you can read XYX^-1 and understand what it means without having to translate it to the low-level matrix multiplication rules and work it out, you understand matrix multiplication intuitively. (Of course there are people who disagree with this view of math—including the ones that call themselves intuitionists—but their disagreement assumes the same notion of intuitive; they just believe things like infinity can’t possibly be intuitive, and therefore most mathematicians must be fooling themselves about what they “know”. )
But yes, learning things until they become second-nature (at least learning how to use things, as opposed to learning about them) is exactly what getting things into your intuition means, not just for math but for everything.
If you want to, you can get prescriptivist and argue that mathematicians and everyone else are misusing the word (and Wiktionary shouldn’t be endorsing this destruction of our language), but if you look at the history back to the original etymology, it’s always been about “look at it and get it”, not about whether that ability was inborn, conditioned, or learned intellectually.