Theory:
• Scala is an acronym for “Scalable Language”.
• It is a general-purpose programming language designed for the
programmers who want to write programs in a concise, elegant, and
typesafe way.
• Scala enables programmers to be more productive. Scala is developed as
an object-oriented and functional programming language.
• If you write a code in Scala, you will see that the style is similar to a
scripting language.
• Even though Scala is a new language, it has gained enough users and has a
wide community support. It is one of the most user-friendly languages.

About Scala
• Scala is pure Object-Oriented programming language
• Scala is an object-oriented programming language.
• Everything in Scala is an object and any operations you perform is a
method call.
• Scala, allow you to add new operations to existing classes with the help of
implicit classes.
• One of the advantages of Scala is that it makes it very easy to interact with
Java code.
• You can also write a Java code inside Scala class.
• The Scala supports advanced component architectures through classes and
traits.

Scala is a functional language
• Scala is a programming language that has implemented major functional
programming concepts.
• In Functional programming, every computation is treated as a
mathematical function which avoids states and mutable data.
• The functional programming exhibits following characteristics:
• Power and flexibility
• Simplicity
• Suitable for parallel processing
• Scala is not a pure functional language. Haskell is an example of a pure
functional language.

Scala is a compiler based language (and not interpreted)
• Scala is a compiler based language which makes Scala execution very fast
if you compare it with Python (which is an interpreted language).

• The compiler in Scala works in similar fashion as Java compiler. It gets the
source code and generates Java byte-code that can be executed
independently on any standard JVM (Java Virtual Machine).
• There are more important points about Scala which I have not covered.
Some of them are:
• Scala has thread based executors
• Scala is statically typed language
• Scala can execute Java code
• You can do concurrent and Synchronized processing in Scala
• Scala is JVM based languages