I think that saying that Java has "obvious deficiencies" is rather missing the point. It is not so simple that Java is a bad language and Scala is a good language- they have different features
and different design goals.
Java was intended to be a small language, (in comparison with languages that came earlier, like C++) with unsurprising semantics and syntax. Java does not have operator overloading, unsigned types or multiple inheritance (in the C++ sense), and these omissions were intentional- to make code easier to understand in isolation and easier to reason about. If you want a language which can express as much as possible in a line of code, Java fails miserably. On the other hand, programmers around the world have built and maintained enormous codebases in Java, suggesting that the "maintenance-oriented" features of the language may have been successful.
edit: Paraphrasing, James Gosling has said that the success of Java was to drag a large number of C++ programmers "halfway to Lisp" by cleaning up undefined behavior and introducing them to garbage collection.