(Updated Mon Nov 8 14:36 EST 2004: Clarified wording.)
Randal,
Thanks for jumping into the conversation. Your viewpoint is
always welcome.
I am concerned, however, that you have quoted my most flowery
praise for FP and used it to dismiss much of my views as mere Koolaide
visions without giving the whole of my views due consideration.
To be clear, I never claimed that FP was the solution for
"everything" or that it was the one, true way. If you genuinely
believe that this was my claim, I am sorry for not having presented my
beliefs more clearly.
Let me take the opportunity to do that now:
- FP is not a panacea.
- FP is another tool for the toolbox (but a very powerful one).
- FP, like all tools, reduces the cost of some things; increases the cost of others.
- Modern FP languages (like Haskell) are not your grandfather's FP language. If you haven't looked at FP in the last 5 years, look again.
- Modern FP languages have reduced the cost of function manipulation to the point where small-scale reuse becomes practical.
- Small-scale reuse provides significant cost reductions.
- Much like Perl, modern FP languages require a serious investment of time before they become understood (and appreciated).
- Most people who dismiss FP haven't spent much time writing code in modern FP languages.
Regarding the following:
Having been around the block a few times, lemme say
that I can certainly see FP being useful as yet another approach to a
problem. But your unrelentless praise for the latest new thing should
be taken in context of the history of discovering just another
interesting programming technique.
Having also been around the block a few times, let me say that my
appreciation of FP comes not from having been smitten by the latest
new thing but rather from the investment of much time and effort. Since the late
1980s I have been coding in and evaluating FP
languages alongside the more common languages such as C, C++, and Perl
that I use to earn a living in industry. However, it is only recently
that I have watched FP flower and come into its own.
While most of industry has turned its back on FP, having long ago
made up its mind, the academic world has been working. Steady, slow,
and ceaseless, they have been working. And they have made much
progress. Please don't dismiss that progress without due
consideration. If you haven't spent serious time coding in a modern
FP language lately, please consider the possibility that
you're drawing conclusions from outdated first-hand knowledge.
FP will be good for some problems, horrible for
others. Just like every other style discovered before it. Understand
that, and you'll understand why everyone's not jumping on your
bandwagon.
To help me put this comment in perspective, how much coding have
you done in modern FP languages lately?
The reason I ask is because if a man came up to me and summed up Perl by saying that
Perl was good for some problems, horrible for others, just like every
other language discovered before it, and that's why not everybody is
jumping on the Perl bandwagon, I would want to know how much he had
used Perl. It's not that I disagree with his statement, which is
clearly true for just about everything, but that I don't find the
statement as useful as knowing why some people are on the
bandwagon. I would want to know whether the man could tell me. I
would want to know whether the man understood Perl's strengths and
weaknesses and could provide useful information that would help me make sensible
choices about when to use Perl.
Cheers, Tom
| [reply] [Watch: Dir/Any] |
| [reply] [Watch: Dir/Any] |
Thanks! I'm glad your eyes are sharper than mine. I have resolved the ambiguity, per your recommendation.
| [reply] [Watch: Dir/Any] |