This post is very fortuitous for me. I've been looking to learn a functional language and I had more or less narrowed my options to Haskell, OCaml and Scala. I liked the breakdown between these languages and the resources. Can anyone who programs in Haskell or OCaml regularly tell me the current state of standard and third party library support? I'm very attracted to Scala because it has JVM support, which sounds fan…
- It is mature and rock-solid, but still manages to evolve, fix issues and simplify/remove features. Most other languages are purely additive, meaning you will have to carry on all the baggage since the languages' inception.
- It is a language which is interested in identifying the best way to solve common programming issues and spares you with all this ideological "OOP/FP is bad" bullshit.
- It has the largest ecosystem (plus it can use all of Java's, too).
- It has the best tooling.
- It has the largest community.
- It has some great learning resources, like the three (or four?) Coursera courses starting in a few weeks.
- Its JavaScript backend is stable and production-ready, Scala-Native is being worked on.
> That said, I come from a C++ and Python background, so do I need to know Java well before learning Scala?
Java knowledge might reduce the amount of learning (as many Java things like the JVM also apply to Scala), but isn't really necessary. You will be fine.