Jest to język mający sprzyjać szybkiemu, łatwemu i przyjemnemu programowaniu, dzięki wzbogaceniu go w różne elementy innych języków (np. Java, C+, C#).
Historia jego zaczęła się w 2001 roku, kiedy to został opracowany przez Martina Odersky'ego w École Polytechnique Fédérale de Lausanne. Natomiast publicznie pojawił się w 2004 roku na platformie Javy a następnie na platformie .NET. Język Scala był wciąż udoskonalany i tak jego druga wersja pojawiła się w 2006 roku. Obecnie aktualną wersją jest wersja 2.11.7 z 2015 roku.
Język ten może być używany zarówno do krótkich i zwartych skryptów jak i do tworzenia dużych, efektywnych a przy tym bezpiecznych systemów sieciowych. Dzięki temu, że język nie opiera się na składni a na bibliotekach, umożliwia to nieograniczoną możliwość jego rozwoju jak i doskonałe skalowanie. Scala jest językiem kompilowanym do bytecodu JVM, co umożliwia mu integrację z całą platformą Javy w sposób praktycznie przeźroczysty. Oprócz tego wyposażony jest w wygodną konsolę do interaktywnego testowania kodu, która znacznie ułatwia pracę programiście Scala. Warto dodać, że w Scali każda wartość i funkcja jest obiektem co sprawia, że jest językiem obiektowym w większym stopniu niż na przykład Java. Jest to również język statycznie typowany co zapewnia zdecydowanie większą kontrolę nad kodem. Dodatkowo nie posiada interfejsów ani dziedziczenia obrazowego, za to wyposażony jest w inteligentną inferencję typów oraz bardzo elastyczną składnię. Dzięki właśnie minimalizmowi składniowemu, programista Scala może tworzyć nowe struktury językowe i typy bez konieczności zmian w zasadniczej składni języka. Co wskazuje na to, że jest to język, który nie ma żadnych ograniczeń, które wpływałyby na jego rozwój.