"Programmers find a programming language or paradigm 'intuitive' to the degree that it resembles what they learned first". As is generally the case with assertions, it isn't a matter of right/wrong, but a matter of trade-offs.
I can't find a digital copy at the moment, but the following paper describes some of the issues embedded in that statement: Carroll, J. M., & Rosson, M. B. 1987. The paradox of the active user. In J.M. Carroll (Ed.), Interfacing Thought: Cognitive Aspects of Human-Computer Interaction. Cambridge, Mass: MIT Press (pp. 80-111). In particular, the assimilation paradox applies. On the one hand, we leverage prior knowledge to understand the new system (e.g. ML -> Java). But, there are significant breakdowns that can occur because of this assimilation. Thus, the similar languages could provide more challenging breakdowns than the completely different languages. The transition from C++ to Java may seem trivial at first, but over time cause more "intuition" problems than a transition from C++ to Prolog. Further, other computer usage and more broadly, life experiences, come to play as well. The new language may not be anything like your first language, yet be closely related to a math course you took, or even Excel. One could perhaps argue the following: "The more knowledge a programmer can assimilate from their prior experiences (especially their first programming language) without causing severe breakdowns, the easier it is for them to learn a new language to the same level as their first language." John Daughtry On Mon, Nov 23, 2009 at 10:30 AM, Alan Blackwell <[email protected]> wrote: > > (forwarding my earlier direct reply to Richard) > > [This is] A regularly recurring question, over the years of PPIG! > > This has been the starting point for a number of PhDs, but a religious > war seldom makes a good PhD. I'm not aware that the results have ever > found anything very conclusive. Some of the students involved may > still be on the list, and can tell you what they ultimately found. > > It seems unlikely that the people shouting on your list would respond > to any common sense, but here are the questions I tend to ask new PhD > students: > > 1) What is the measure of 'intuitive' that you propose to use? > > 2) Do you believe that all people are the same? If not, who are you > trying to help? > > 3) What do you want people to be able to do with a programming language? > > Depending on their answers, I might do something like refer them to > John Pane's work with Brad Myers on 'Natural Programming' (which was > focused on understanding childhood models), or just tell them the old > joke that I saw posted during a religious war on a Python list that > 'ML is the language they use to mop up the excess brain capacity of > first year Cambridge students' (or same joke, for MIT students using > Scheme). > > I'm not answering you from the email account that has the list > subscription - feel free to forward if you like. > > Alan > > On 23 Nov 2009, at 04:23, Richard O'Keefe wrote: > > > Does anyone know whether there's any empirical evidence either way > > for the hypothesis > > programmers find a programming language or paradigm > > "intuitive" to the degree that it resembles what they > > learned first > > ? > > > > Another mailing list I'm on just had a bunch of people shouting > > that imperative programming was obviously more intuitive than > > functional or logic programming. Since they didn't seem to be > > familiar with the fairly wide gap between a typical first-year > > model of how an imperative language and what _really_ happens > > (e.g., apparently non-interfering loads and stores can be > > reordered both by the compiler and the hardware, loads from main > > memory can be 100 times slower than loads from L1 cache, &c), > > I found myself wondering if what they _really_ meant is "I learned > > a simple model early on and find anything else different." > > > > There's evidence that people find languages like Scheme and Erlang > > (and even Prolog) easier if they haven't done conventional > > imperative or OO programming before, but that's not to say that > > they wouldn't have found those approaches easier still. > > > > > > - -- > Alan Blackwell > Reader in Interdisciplinary Design, University of Cambridge > Further details from www.cl.cam.ac.uk/~afb21/ > > > > > > > ------- End of Forwarded Message > > > -- > Alan Blackwell > Reader in Interdisciplinary Design, University of Cambridge > Further details from www.cl.cam.ac.uk/~afb21/ >
