02/18/2021

The Scala language combines three things: static typing, object-oriented and functional approaches. As mentioned, Scala runs in the Java virtual machine. Compatibility (“free mixing”) of this language with Java makes it possible to write Android applications in Scala. In addition, the ability to compile to JavaScript allows you to develop web applications in Scala.

Despite some similarities and even a kinship of this language with Java, for 10 years after the appearance of Scala, its “big brother” remained faithful to the object-oriented paradigm. And only in 2014, Java 8 included elements of the functional approach – lambda expressions.

Besides the Java and C # mentioned above, Scala has been influenced by other languages ​​and technologies. The way of expressing properties borrows heavily from Sather. The concept of a unified object model migrated from Smalltalk. Beta shared the idea of ​​nesting everything, including classes. Abstract types in Scala resemble the abstract signature types in SML and OCaml, generalized in the context of full-fledged components.

In addition, Scala has adopted the features of functional languages ​​such as Scheme, Standard ML, and Haskell.