I'm using it because due to performance and maturity requirements I decided to build my app on the JVM. Among the JVM frameworks I selected Play for its features (development workflow, statelessness, async, REST/JSON). Given the choice of Java or Scala, I selected Scala because it is more expressive (less, clearer code) and the functional style makes it easier to work in asynchronous and immutable style. Also, I wanted strong typing and didn't want to use Groovy or Clojure.
1. The type system is too complicated.<p>2. It's difficult to find implicits. If I am looking for a Haskell typeclass instance, I know it will probably be defined either in the same module as the type, or the same module as the typeclass. I couldn't work out where to find implicits.