Dear all,

I'm a PhD student at the Dept of Computing, Goldsmiths, London UK
supervised by Prof. Geraint Wiggins.  By way of introduction here's a
recent paper of mine:
  http://doc.gold.ac.uk/~ma503am/writing/nime09.pdf
and my blog:
  http://yaxu.org/

I discovered PPIG recently and am enjoying reading through the past
papers, it's really great to have all the recent papers on open
access, much appreciated!  I particularly enjoyed Alan Blackwell's
"Metaphors we program by" paper, and took the liberty of collating all
the conceptual metaphors he found in java library documentation here:
  http://yaxu.org/metaphors-of-javadoc/

As you might see someone commented on my post with a link to Dijkstra
railing against anthropomorphism in computer science.  Dijkstra is of
the opinion that computing is so radical that we shouldn't try to use
any metaphors relating to our bodies, or indeed of any actions over
time, otherwise you get in a terrible mess with `operational thinking'
and end up with buggy code.  This opinion seems extreme these days now
that computing is pervasive and often centres around tight
synchronisation between sensors and actuators over time and space [2].
 If Cognitive Linguists such as Lackoff are right then thinking
without metaphors grounded in physical experience is barely possible
in any case.  Further, I don't see why declarative language can't
include functions over time, e.g. Functional Reactive Programming [3].

It would be interesting though to rerun the Java experiment with
programmers of other languages, including declarative ones, and see
how the conceptual metaphors differ?

Actually I'm interested in all comparisons between declarative and
imperative language, including psychological and pedagogical studies.
Is one approach easier to learn than the other?  Is it easier to
switch from declarative to imperative approaches than vice-versa?  My
guess is that that functional programming is easier to learn than
procedural programming for absolute beginners, but that it's harder to
progress from procedural to functional programming than vice versa,
giving the false impression that functional programming is generally
harder...  Does anyone know of studies attempting to test this?

Best wishes,

alex

[1] http://www.cs.utexas.edu/~EWD/ewd09xx/EWD936.PDF
[2] http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-30.pdf
[3] http://conal.net/papers/push-pull-frp/

Reply via email to