Java projects
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.
BigData
The Apache Spark framework and the Apache Kafka project are basically created in Scala. Thanks to Spark, Scala is used to process big data. Compiling Scala code into JavaScript to write client and server apps also has proven to be successful.
Banking sector
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:
Promising outlook
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.
Performance
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.
Corporate solutions
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).
Integration with Java enables compiling a code written in Scala for the JVM, as well as
using all Java libraries. By the way, this compatibility also allows writing Android apps.
And compiling in JavaScript makes it possible to create web apps (backend) through Scala
development outsourcing.
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.