[Haskell-beginners] is Haskell practical?
dennis.raddle at gmail.com
Wed Nov 25 13:52:46 UTC 2015
On Wed, Nov 25, 2015 at 4:56 AM, Alexander Berntsen <alexander at plaimi.net>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
> If the tables were turned and denotative programming were the norm and
> imperative programming the fringe community (not that denotative
> programming is entirely fringe as it were), you would no doubt have
> posed the opposite question.
I don't agree. Having worked for 16 years in a government aerospace
contractor doing C++ and Python programming, what I saw is that maybe half
the programmers struggled with precise thinking and abstraction. They
thought of programs as step-by-step recipes and implemented those recipes
in exactly the same way they themselves had always thought about a problem.
Also having worked as a math tutor, I see many people who struggle with
So my feeling is that at least half of the programmers I knew would reject
Haskell outright and would feel it was pointlessly non-intuitive. Would
they have thought it was intuitive if they were raised on it? I don't think
so, because I think these same people were among those who struggle with
all forms of abstract thought, like math students who may someday be able
to appreciate a little math but are light years away from being math majors.
We can pose a world in which the "tables were turned" but for that world to
come into existence a lot of things would have to be changed about the
current world, particularly increasing interest in abstract math from a
Okay, having written all that, please feel free to tear holes in my
argument. I would like to be wrong and I don't have experience outside one
workplace (and some math tutoring).
My workplace was much better than a contractor we briefly hired. Those
folks had about a 90% struggle ratio with using things like object
orientation. "Just get it done, quick and dirty" was how they thought. My
own workplace had some very intelligent people but between the high numbers
who were just barely competent programmers, and a more "practical"
orientation in the management (documentation was highly emphasized, testing
was highly emphasized, but elegant code was practically unimportant), I
just can't see the adoption of Haskell by them, not in this lifetime, not
in this universe.
Can an "okay" imperative programmer become an "okay" Haskell programmer?
Does the necessary skill, work, motivation, and talent to program at an
"ordinary" imperative level serve as a sufficient prerequisite for
functional programming? I really don't think so, but I could be wrong.
> However, the tables aren't turned, and you aren't posing the opposite
> question, so let me give you a brief answer: Yes, Haskell is practical.
> To elaborate some: it is used in academia and industry. Not as much as
> some languages, but then again more than some other languages. Big
> universities like Chalmers use it, and big companies like Facebook use
> it. It is the primary language I myself use in industry as well.
> Let me repeat myself: Yes, Haskell is practical!
> If you have more specific questions, do not hesitate to ask.
Yes, I do have more specific questions. For example is the conciseness part
of what makes it practical in these uses? Is the conciseness somehow bound
up with what makes it practical? In other words, could we imagine a simpler
language with the same level of practicality but less of a learning curve?
By the way, I *love* conciseness and have experienced the possibility of it
becoming intuitive. It's amazing once I understand an elegant piece of
Haskell, once I have wired my brain to think in harmony with it, that it
becomes immediately legible. So I know it's possible to make progress. I'm
not saying that conciseness must forever remain an obtuse language.
But I wonder if the same mechanisms that make Haskell concise (which are
some of the things that make it hard) also are bound up with its practical
advantages so that they can't be separated.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners