Scala is a general-purpose programming language which provides support for functional programming and a strong static type system. Many of Scala’s design decisions were made to address the criticisms of Java.
Scala source code is intended to be compiled with Java bytecode, so the resulting code runs on a Java virtual machine. Scala provides a language that interchanges with Java, so libraries written in both languages can be referenced directly in Scala or Java code.
Like Java, Scala is object-oriented and is reminiscent of the C programming language. But unlike Java, Scala has many similar features to programming languages like Haskell, Scheme and Standard ML such as pattern matching and lazy evaluation. It also has an advanced type system that supports algebraic data types.
Scala is particularly useful for those within IoT Developer roles.