Scala è un linguaggio di programmazione generico destinato principalmente alla Java Virtual Machine. Progettato per esprimere schemi di programmazione comuni in modo conciso, elegante e sicuro per i tipi, fonde stili di programmazione imperativi e funzionali. Le sue caratteristiche principali sono: un avanzato sistema di tipo statico con inferenza di tipo; tipi di funzione; pattern-matching; parametri e conversioni implicite; sovraccarico dell'operatore; piena interoperabilità con Java; concorrenza