3 ms·
I think we have to distinguish between hard to learn and hard to bring and integrate into a team. Both are hard to learn largely due to the choice of Strong ty
by gregwebs 15y ago
I think we have to distinguish between hard to learn and hard to bring and integrate into a team.
Both are hard to learn largely due to the choice of Strong typing, which is fairly independent of paradigms. Haskell is hard because it adds the purity pardigm, although you could say that is just a full embrace of FP.
Haskell is hard to bring into a team because it is pure FP, whereas Scala has the Java/OO backdoor. But this article points out that it is not easy to get every one to write and maintain good Scala in a team for that same reason. If a team attempted Haskell they would have a true pass/fail test and be less likely to end up in limbo.
Maybe that is Haskell's best point: It is hard to write bad Haskell. I have seen it- code littered with IO, poorly named variables/functions, and passing large amounts of arguments and configuration state. But that is very rare and re-factoring even that is usually at least very safe and sometimes straightforward. So it is difficult for a novice to do a lot of damage. But instead of intentionally limiting power to prevent a programmer from doing things, Haskell gives you a great deal of power- just in a way that greatly prevents it from being abused- the novice can eventually harness it.