
Ask HN: What is bad about Haskell? - litzer
There&#x27;s a post almost every other day on the front page praising Haskell. I&#x27;ve currently been learning it myself for a few months now, and was just wondering what do people (who are proficient at it) not like about it?
======
dudul
I don't have a lot of experience with it myself, but I don't like the
package/dependency management. I'm used to the JVM way where you bundle your
third party libraries per project as opposed to installing them on your
system.

Other than that, there is really not much that I don't like. I think it's one
of the best languages I've tried and I wish it was more widely used in the
industry.

~~~
nunobrito
I was recently working with a university department (I'm a business). They
developed this interesting software in Haskell. Their developer quit job for
something better, it took months looking for a replacement but still nobody
wanted to pick up this code. That project just ended up being rewritten in
Java so we could get on with development.

That's life folks. Some people just need to build products and get them to
market for paying salaries and supporting their family. If you ask me what is
bad about Haskell, it is the difficulty in finding developers and difficulty
on making other developers to work with apps written in Haskell.

I don't program in Haskell, I have people doing the programming side (don't
get me wrong, I wrote 100k LOC in Java over the 12 months) and if I ask other
developers around here to learn Haskell, it is difficult to get any
enthusiasm.

~~~
litzer
"If you ask me what is bad about Haskell, it is the difficulty in finding
developers and difficulty on making other developers to work with apps written
in Haskell."

This makes me wonder even more what's wrong with it! I doubt the learning
curve is scaring THAT many people away, since employable programmers already
demonstrated a willingness to learn hard things. It seems to me that there
must be something bad I don't know about the language.

~~~
bgar
> there must be something bad I don't know about the language.

No, there isn't. People are just scared because of what they hear from others
who failed at learning it, and who now say negative things about the language
to feel better about themselves. People who fail to learn it are too
entrenched in another paradigm or aren't able to think abstractly enough. It's
not the language's fault. It might be partly because they read the wrong
learning materials.

------
Nadya
It has a pretty high learning curve. Not entirely fault of Haskell, but more
that people find functional programming to be difficult, to say the least.

Then there is the "Chicken & Egg problem" behind libraries and adoption rate.

    
    
      1. High Learning Curve = Lower adoption rate
      2. Low adoption rate = Less people making libraries
      3. Less Libraries = Less People want to use Haskell - Goto 2

~~~
dudul
[https://hackage.haskell.org/packages/](https://hackage.haskell.org/packages/)

I think there are plenty of libraries.

I also think what people call "high learning curve" is more "this is so
different from the good ol' OOP that I've been doing for the past decade".

Functional programming is not hard, it is actually very easy to learn as a
first paradigm. It becomes more complicated when one has experience with a
different paradigm and has to un-learn their habits to learn new ones.

~~~
vezzy-fnord
In fairness, Haskell is still complicated compared to other functional
languages, such as the ML family (F# and OCaml included) and Erlang. Might be
because of its purity.

~~~
codygman
complicated is a very overloaded term, you'll have to communicate what
complicated is to you before we can meaningfully compare Haskell vs other ML
family.

------
dllthomas
Nitpick, but ran into this again today: I wish "Ord k => Monoid (Map k v)" was
"(Ord k, Semigroup v) => Monoid (Map k v)", and would combine values (on key
collision) using whatever semigroup instance was available for v rather than
an implicit Last.

------
dllthomas
I don't like the Prelude. It has a lot of cruft - partial functions, weird
names for things. At some point that needs a rewrite, but I don't think the
community is sure how we get there from here (at least I'm certainly not).

~~~
guiraldelli
> I don't like the Prelude. It has a lot of cruft - partial functions, weird
> names for things.

For the partial problem, you could rely on `safe`
([https://hackage.haskell.org/package/safe](https://hackage.haskell.org/package/safe)).
But I am sure you could take any other function on `Prelude` that you don't
like and do a Hayoo/Hoogle (e.g. [http://hayoo.fh-
wedel.de/?query=[a]+-%3E+Maybe+a](http://hayoo.fh-
wedel.de/?query=\[a\]+-%3E+Maybe+a) )search and find the one more appropriate.
:)

~~~
dllthomas
At this point, I'm mostly well aware of the alternatives. I just wish the
right thing was also the easiest thing.

