Well, the downside is that you have to be prepared for Scala to be a bit rough around the edges:
- you’ll get the odd cryptic Scala compiler internal error
- the IDE support isn’t quite as good as Java (neither is the debugging support)
- there will be breaks to backwards compatibility in future releases (although these will be limited)
You also have to take some risk that Scala as a language will fizzle out.
That said, I don’t think you’ll look back! My experiences are positive overall; the IDE’s are useable, you get used to what the cryptic compiler errors mean and, whilst your Scala codebase is small, a backwards-compatibility break is not a major hassle.
It’s worth it for Option
, the monad functionality of the collections, closures, the actors model, extractors, covariant types etc. It’s an awesome language.
It’s also of great personal benefit to be able to approach problems from a different angle, something that the above constructs allow and encourage.