Scala can be used in all projects that previously used Java (a dedicated Scala developer can, for example, simply rewrite a Java project in Scala). Play (Scala and Java) and Lift frameworks are used in projects such as Coursera and Foursquare. LinkedIn (social network) uses Scala framework. Twitter switched from Ruby to Scala in 2009, and the Guardian (the newspaper’s online version) switched from Java two years later.
This language is widely used by banks, such as Swiss bank UBS and Russian banks Sberbank and Tinkoff, which actively address Scala development companies.
Mass media and news sites:
Sooner or later, Scala may take the place of Java, so it would be reasonable to start with it at once and hire a Scala developer to keep up with the front lines of development in the future.
Support for functional programming.
It is as good as Java in terms of performance.
Compatibility with Java
Scala’s syntax is simpler than that of Java, which is why it is praised for its ease of code writing.
Compatibility with Java libraries.
Scala is good for large development teams (thanks to static typing).
Mobile development for Android
Scala offers the possibility to write apps for Android (writing apps for iOS is theoretically possible, but considered rather impractical).
Scala was created in the early 2000s at the École Polytechnique Fédérale de Lausanne (in Switzerland). Martin Odersky, a famous researcher in computer science,led the team that created Scala. In January 2004, the language was released for the JVM platform, and in June of the same year, it was released for the .NET Framework (although support of .NET was discontinued around 2012). In 2016, the LLVM compiler was released.
In 2011, Martin Odersky founded TypesafeInc (later called LightbendInc). With grants awarded to his team for language development, the company supports Scala developers, develops services in this language and sells Scala libraries.
The language has been greatly influenced by other languages. Many concepts were taken from Java and C#. There have also been some contributions from Smalltalk, Ocaml and Beta.
Many programmers and researchers consider Scala the next step in the development of Java, especially after development of the latter was stalled due to Oracle acquiring its rights.
Scala combines three approaches: static typing, OOP and a functional approach. It allows developing small scripts as well as large distributed systems.
The object-oriented paradigm is similar to the implementation in Smalltalk, where all values are treated as objects and each operation is treated as sending a message. In the functional approach in Scala, every function is a value. A simplified syntax is used to define some types of functions (anonymous and curried). Scala also supports high-order functions (and many other things that you may probably not understand if you are not studying functional programming).
Unlike Java, Scala originally added lambda expressions, monads and other elements of functional approach. Although functional approach in Scala is not implemented as fully as in Haskell or Erlang, it combines functional and object-oriented approaches, allowing to use both of them.