There was interesting work done in the 70s exploring how non- programmers described in English tasks that, in principle, might be turned into programs (see e.g. Lance A. Miller, Thomas Green, John C. Thomas). The experiments showed that neither loops nor conditionals as often employed in imperative and other paradigms were "intuitive" in the sense of intuitive implied.
Benedict du Boulay School of Informatics University of Sussex 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.