Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What is bad about Haskell?
4 points by litzer on April 24, 2015 | hide | past | favorite | 17 comments
There's a post almost every other day on the front page praising Haskell. I'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?


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.


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.


"Some people just need to build products and get them to market for paying salaries and supporting their family." Which is perfectly possible with Haskell. https://www.youtube.com/watch?v=ZR3Jirqk6W8

"if I ask other developers around here to learn Haskell, it is difficult to get any enthusiasm." What you are saying is that you have developers who are not willing to learn new technologies. It is one thing to say that they've spent some time studying it and decided that it wasn't a good fit for the problem they are working on, it is a completely different thing to say that they don't know it and are not interested in learning something new and don't want to hear about it. I would question the quality of such developers.


"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.


> 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.


> it took months looking for a replacement but still nobody wanted to pick up this code

> and if I ask other developers around here to learn Haskell, it is difficult to get any enthusiasm

Sorry, it does not seem to be Haskell the problem, but the people.

> 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.

For this, I suggest few solutions: (1) http://www.haskellers.com/users (2) http://careers.stackoverflow.com/employer (3) http://www.reddit.com/r/haskell (4) https://wiki.haskell.org/Mailing_lists (5) #haskell at Freenode

In the extreme case, I would go for https://wiki.haskell.org/Haskell_in_industry and https://github.com/commercialhaskell/commercialhaskell looking for a freelancer or a consulting company focused on Haskell.

Seriously, I don't think those were strong arguments, although I totally understand the difference in finding a Java developer versus a Haskell one.


> I'm used to the JVM way where you bundle your third party libraries per project as opposed to installing them on your system.

Surely you are not aware of what `cabal sandbox` (https://www.haskell.org/cabal/users-guide/installing-package...) is. Well, if it is your unique complain about Haskell, I think you should give it a second chance! :)


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


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.


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.


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.


Hmm, well I don't mean "why don't more people use it". I understand it looks weird and difficult at first. What I'm more interested in is, for people who have used Haskell for a few projects, what don't they like about it?


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.


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).


> 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). 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 )search and find the one more appropriate. :)


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


I'd just write a good Prelude and encourage other people to use it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: