What do you see as the biggest obstacles for adopting
the FP
abstractions in "everyday programming thought"?
I'm not the person you were responding to when you wrote that. But, as
you have no doubt guessed, I have some thoughts on the matter.
The biggest obstacle I see is that FP is not how computers actually
work. Computer hardware is fundamentally sequential imperative. If
you don't have your head around that pardigm, you cannot understand
what goes on under the hood, which, while perhaps not relevant for
routine hackery, does seem to be helpful - necessary, even - when it
comes time to deal with something going wrong.
And, of course, there will always be tasks that demand, or at least
desire, all available speed. Paradigms that mismatch with the
underlying implementation will always be at least somewhat crippled for
those applications - which is far from all applications, of course, but
they will have an influence.
Thus, the less mentally compatible something is with the sequential
imperative model, the more trouble there will be using it for routine
programming. At least until/unless someone builds hardware that isn't
sequential imperative at its core.
I've run into a somewhat different version of this when thinking about
computational models that are appropriate to analog computers. It has
proved difficult to free myself from the mental models I've adopted to
deal with digital computation, even when they are inappropriate or, in
some cases, even outright obstructionist.
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse at
rodents-montreal.org
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B