5 ms·
Ask HN: What is bad about Haskell?
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?
- dudul 11y agoI 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 11y agoI 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.
- dudul 11y ago"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 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.
- litzer 11y ago"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 11y ago> 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.
- guiraldelli 11y ago> 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 http://www.haskellers.com/users (2) http://careers.stackoverflow.com/employer http://careers.stackoverflow.com/employer (3) http://www.reddit.com/r/haskell http://www.reddit.com/r/haskell (4) https://wiki.haskell.org/Mailing_lists 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 https://wiki.haskell.org/Haskell_in_industry and https://github.com/commercialhaskell/commercialhaskell 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.
- guiraldelli 11y ago> 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-packages.html#developing-with-sandboxes 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! :)
- Nadya 11y agoIt 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 11y agohttps://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 11y agoIn 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 11y agocomplicated 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.
- litzer 11y agoHmm, 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?
- dllthomas 11y agoI 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).
- tome 11y agoI'd just write a good Prelude and encourage other people to use it.
- guiraldelli 11y ago> 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 11y agoAt this point, I'm mostly well aware of the alternatives. I just wish the right thing was also the easiest thing.
- dllthomas 11y agoNitpick, 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.