Java beats Scala, and many other languages, in readability and maintainability. Java has a lot of best-practice conventions developed over many years of pain on how to make the code as readable as possible. The functional languages need these guidelines even more than Java does, but they seem to lack them. It's really easy to write insanely convoluted unreadable code in Scala.