But functional programming languages today represent
major advances
over *mainstream* imperative languages in expressivity and - with a
type system like Haskell's or Scala's - correctness and productivity.
For some problems and programmers. They are unmitigated disasters in
other cases. Functional programming is particularly bad at event loops
that mutate state based on external input; doing such a thing basically
requires reinventing variables in a way that jumps through the hoops
necessary to make it fit the rather Procrustean FP bed.
FP is an important tool, both for the sake of the tasks it _is_ a good
fit for and for the sake of the mind expansion learning it produces (in
those who do manage to get their heads around it). But to dogmatically
declare it an advance in pretty much any task-independent practical
metric is to drink some rather unrealistic ivory-tower koolaid.
Of course, the same is equally true of pretty much any programming
paradigm; FP is very far indeed from being alone in this respect.
/~\ 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