It provides support for functional programming, and is statically typed. It is designed to fix some problems with Java,[2] and to be concise—to be able to express a lot with only a little bit of code.[3]
Scala code is supposed to be compiled into Java bytecode, so Scala code can be run on a Java Virtual Machine (JVM). Scala has language interoperability with Java—Scala code can be used in Java programs, and the other way around.[4]