Hacker News new | past | comments | ask | show | jobs | submit login

Interesting and honest article from a big Scala promoter.

I have been thinking about this in regards to Haskell- and much of this article would apply. But you can't write Java instead of FP in Haskell. Some aspects of Haskell are harder to learn, and some easier. I feel the biggest issue for a user of a library is: can they understand the compiler error messages? This places constraints on the level of abstraction that a library writer can achieve if sharing the library with the community.




It sounds like Scala is hard because it's got too many paradigms and inconsistencies, and Haskell is hard because it's got very few paradigms and is very consistent. (That's not sarcastic; when a language has many ways to accomplish a thing it is easier to find at least one of them.)


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.




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

Search: