[Haskell-beginners] is Haskell practical?
dennis.raddle at gmail.com
Wed Nov 25 12:37:30 UTC 2015
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."
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners