[Haskell-beginners] is Haskell practical?
martin at vlkk.cz
Wed Nov 25 13:07:43 UTC 2015
I've been learning Hakell for a bit more than half year now.
Like you, I've had all kind of doubts and I have experienced first-hand
the steep learning curve. I too have asked myself whether it's worth the
effort for an ordinary (read: not academically inclined and gifted)
programmer to learn the language with all its high level abstractions.
I have chosen to learn properly, from the ground up, using the
"http://haskellbook.com/progress.html" for that, and it is taking me
quite some time, because my brain is used to very different way of going
I am not beyond all this, yet.. but recently I have decided to finally
go and use the langage on a real project. I picked one of the issues in
cabal, marked as "easy", worked out the fix for it and contributed a
pull request to cabal on github.
And to my surprise, I am not finding it difficult anymore to understand
Haskell code, and even produce my own. I can feel that I have crossed
some kind of threshold and it is not looking that haunting anymore.
So I think there is no question that the language and the underlying
abstractions are practical. It's more that it is a good bit
unconventional in relation to the mainstream and therefore one has to
switch gears before being able to use Haskell.
> I've been using Haskell for several years, but only really got into the
> power of the typeclasses recently. It's marvelous how pretty abstract
> concepts like Monoid, Monad, Functor, etc. can be used.
> 1. First it's remarkable how many instances they have on useful data
> structures. So the concepts become less abstract and more applied.
> 2. Second it's remarkable how the use of these concepts leads to expressive
> power and conciseness.
> Haskell is therefore a very beautiful language that seems to either be
> exploiting some mighty amazing coincidences or on the other hand is
> actually plumbing beautiful truths about the universe.
> But what if someone came along and said, "Well, conciseness isn't all that
> important. Having to type more isn't much of a drawback -- it doesn't
> really increase the time it takes to write a program once you consider that
> there is a greater time spent in requirements collection, overall design,
> debugging, and documentation. The real drawback of concise/expressive
> Haskell is the difficulty in understanding and using it fluently.
> Ultimately Haskell is just mathematicians having fun, but not very
> Now, I would be sad to see someone argue this point of view, as I find
> Haskell to be beautiful and fun. But the learning difficulties are very
> real... 16 years of using imperative languages have hardly prepared my
> brain at all for concise/expressive Haskell. I only use it for a single
> hobby project and will probably never get beyond learning the list and
> Maybe instances of a few typeclasses. (It blows my mind to read the docs
> and see a dozen instances for certain typeclasses.... yikes! When would I
> ever be able to learn and use those?)
> I would just wonder what you, the reader, would say in response to an
> argument against the practicality of Haskell for these specific reasons:
> (1) conciseness isn't that important (2) it requires too much of an
> advanced mathematician's brain to use well.
> I have read it has advantages in parallel computing. What else?
> Or maybe you would say -- "It's not practical. So EMBRACE it. Have fun."
> Beginners mailing list
> Beginners at haskell.org
More information about the Beginners