Scala is a programming language that has both object-oriented and functional characteristics. Scala is statically typed, with an advanced type system that is more powerful than that of other languages such as Java and C#. Its name is derived from scalable language: scalable in the sense that the language’s core constructs are so modular that new functionality can be added via libraries rather than by modifying the language itself. Scala is suitable for building large modular systems as well as for scripting tasks. Its functional features facilitate its use for writing concurrent programmes that make use of several cores or processors. Scala compiles Java bytecode running on the JVM. It has excellent interoperability with Java, its Java libraries can be used by Scala without any problems.