On Tue, Nov 24, 2009 at 5:04 PM, Raoul Duke <rao...@gmail.com> wrote: > On Tue, Nov 24, 2009 at 1:58 PM, Lindsay Marshall > <lindsay.marsh...@newcastle.ac.uk> wrote: >> I think this is a complete red herring. But there again so is the whole idea >> of intuitiveness. > > agreed :-) > > my point (which might have been exactly the same as yours) was just > that if we are going to try to understand how an individual might best > be able to use a computer, we need to understand that it isn't just > the gross terms of e.g. imperative vs. functional. >
I think that's a reasonable observation, but I think we might be able to make generalizations about imperative vs. functional as one aspect out of several that are of interest. In particular, there are many advocates of functional programming out there that tout advantages to functional vs. imperative (e.g.,http://www.defmacro.org/ramblings/fp.html). And yet, the languages that have enjoyed the most widespread usage (e.g., FORTRAN, COBOL, Basic, C, C++, Java, Python, Perl, Ruby) are all more on the imperative side of things, such that none of the languages that are typically associated with functional (e.g., Common Lisp, Scheme, Haskell, ML, OCaml, Erlang) have ever reached the level that you could call them "mainstream", although there have been non-academic environments where functional languages have been used successfully (e.g., AutoLISP, Emacs Lisp, OCaml at Jane Street, Erlang at Ericsson, Scala at Twitter). It's possible that all differences in say, learning, productivity, or adoption of languages can be attributed to factors other than whether they are functional vs. imperative. However, because it seems to me that there is such a qualitative difference in how you write code between the two approaches, I'd be very surprised if there was no effect at all. Regards, Lorin