Scala jest językiem programowania ogólnego przeznaczenia, którego głównym celem jest wirtualna maszyna Java. Zaprojektowany do wyrażania typowych wzorców programowania w zwięzły, elegancki i bezpieczny sposób, łączy w sobie imperatywny i funkcjonalny styl programowania. Jego kluczowe cechy to: zaawansowany statyczny system typów z wnioskowaniem typu; typy funkcji; dopasowywanie wzorów; niejawne parametry i konwersje; przeciążenie operatora; pełna interoperacyjność z Javą; konkurencja