Many applications nowadays are being developed using Java, but the Java platform allows you to choose other programming languages than just Java. These are compiled to the same binary format (.class) as Java programs and can make use of the existing infrastructure and libraries for Java.
One of Scala's advantages over Java lies in its conciseness, which means that Scala code is shorter and thus more easily readable and maintainable.
Scala supports functional programming better than Java 8. The type system is very powerful and supports development better than Java's type system
Besides, the language is better-suited than Java to conducting calculations using numerical types other than scalars. This is because Scala allows operator overloading, thus saving you the hassle of producing expressions like this one:
x = a.add(b.multiply(c.divide)).add(q.multiply(r.divide(s)))
Again, this improves readability and maintainability.
Most important among Scala's strengths, however, is its superior support of secure multithreading, particularly with the Akka framework.
That is what makes Scala a viable option for the development of high-performance server applications.
I participated four Scala classes:
I participated in five Scala-conferences:
I have also gained some experience in teaching Scala and Scala relevant issues:
My participation in Scala classes, conferences and even experience in teaching has equipped me very well for working with this technology, especially since the classes were very challenging. Moreover, I benefited from the solid foundation I was building on: since Scala has many of the same characteristics I was already familiar with from Java and Ruby, I grasped Scala quickly.