From: Jason Howe <jason at smbfc.net>
On Thu, 6 Jun 2013, Toby Thain wrote:
On 06/06/13 11:02 PM, Mouse wrote:
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).
It's simple to teach and use.
This is a joke, right?
It really is a different way of thinking that's not easy for some folks to
pick up. I'm interested to hear your your approach which makes
functional programming simple and easy.
It's not completely a joke. I live in that world these days.
We've definitely found that folks whose foundation is in procedural
languages (or assembly, and I count myself solidly in that crowd) have much
more difficulty wrapping our brains around FP paradigms. Not all of
them...some folks are just naturals and pick it right up, but it involves
letting go of a lot of habits. The insult when I was coming up was "nice,
you can write Fortran in C (or Pascal)". Now it's "nice, you can write C
in Scheme/Python/Ruby" (and, no, I'm not interested in going down the
rabbithole of whether you think Python and Ruby are FP "enough").
However, for folks coming to it fresh(er), and in particular from other
disciplines (mathematics, biology, social sciences, etc.) they don't seem
to have nearly as hard a time dealing with the abstractions FP brings to
problem solving. For these folks, the higher level abstractions map more
closely to how they're looking to solve problems, and they're getting
remarkable, world impacting results (See: bioinformatics and python).
Things I perhaps could, but would not want, to try and solve in C. But I
wouldn't want them to write an OS.
So....not just right tool for right job, but right mind/approach/adaption
for right job.
KJ