Scala, som släpptes år 2004, är ett statiskt typat flerparadigm programmeringsspråk som är utformad för att vara lätt att förstå och skriva. Denna designfilosofi framkommer tydligt i dess eleganta syntax och kraftfulla funktioner. Det kombinerar bäst av två världar, det vill säga, objektorienterad programmering (OOP) och funktionell programmering (FP). Medan OOP tillåter att data och metoder (som arbetar med data) kapslas in i objekt, tillåter FP att funktioner är första klassens medborgare, vilket innebär att funktioner kan passeras runt som vilken annan variabel eller data som helst.
Från ett prestandaperspektiv erbjuder Scala fantastiska skalbarhetsfunktioner, vilket gör det till ett naturligt val för att hantera Big Data-problem. Den kör även på den befintliga Java Virtual Machine (JVM) infrastrukturen, vilket betyder att Scala kan återanvända befintligt Java-ramverk och bibliotek vilket i sin tur gör det mycket attraktivt för Java-utvecklare att överväga Scala som ett alternativ språk.
Scala har också en flexibel syntax, som gör det möjligt för programmerare att uttrycka sina tankar på ett minimalistiskt och effektivt sätt. Skalas syntax gör det möjligt för programmerare att skriva generaliserade typ-metoder som kan abstrahera över typer och öka återanvändningen av kod. Förutom det, erbjuder Scala även understöd för avancerade funktioner som latent typning, implicita parametrar, och operatör överbelastning, vilket ger utvecklare en mängd olika verktyg för att lösa problem och utforma program.