Scala is such a complete language that it could be defined in several ways. However, we'll try to summarize it with some shortcuts. Scala is a complete language meant to optimize development time and code. That's why the name Scala was chosen, which stands as a mix of scalable and language. The name signifies that the underlying concepts of the language are growing well with application needs or complexities.
Why Scala can be defined as optimized is mostly because of the paradigms on which it relies and the ones it offers.
In short, Scala code is more concise and elegant, and can be less buggy simply by smoothly combining the features from an object-oriented language and a functional one. Very roughly, take a blender, drop in Java and Haskell, and you'll get a taste of Scala.
In the coming sections, we'll see the common features of Scala.