I've been using Scala for a year now at work (finance technology) and would not want to move back to Java at all! The things that concerned me most when originally considering the migration were:
- Tool Support (what are the IDE's like?)
- Interop with existing Java libraries and build technologies (
ant
, Spring, internally-written stuff)
- Talent Pool (where do I find good Scala developers?)
- Transition-time (how long before I'm writing good Scala?)
I found that IDEA's Scala plugin (for the now free v9 Community Edition) is excellent: not quite as good as Java's tool support but certainly good enough for our needs. It has basic refactoring and debugging and great syntax-highlighting. My experience with Eclipse has been extremely disappointing: I'm led to understand that great improvement is expected for Scala 2.8 but I've seen a recent Eclipse-nightly and it was, frankly, awful.
The interoperability with Java is first-rate - I have had no problems whatsoever and still make heavy use of Spring and our bespoke (ant-based) build-system. The developer-pool is only a consideration for a large company with moderate-to-high staff turnover; it has not been an issue for us so far and interviewees have expressed interest in using Scala anyway.
Perhaps the biggest issue is transition-time. I've found this to be 2 weeks to being able to write anything reasonable, 3 months to start to really "get it" and 6 months-1 year to start taking advantage of the functional and DSL-sides of Scala. So, what are the really big gains for me?
- Type inference and co- and contra-variance built in (code is more readable and intuitive - generics just works, unlike Java where it can be extremely painful)
- Functional Programming style and closures (code is more readable and quicker to write)
- The actors concurrency library (simplifies concurrent programming hugely)
So to conclude:
- Is Scala any good? Yes - it's fantastic
- Is it ready for real enterprise use? Yes - there are quite a few compaies using it now, including Twitter, Sony and EDF
- Are the gains worth the adoption cost? Yes - absolutely