TL;DR
オブジェクト指向と関数型プログラミングのスタイルを組み合わせてプログラムを組み立てられる、静的型付けのプログラミング言語。
なぜ必要か
静的な型によって、安全なシステムを最初から作りやすい。高速で並行・分散処理を行うシステムの構築に向いている。
仕組み
実行環境は 3 つある。JVM 上で動かすほか、JavaScript に変換してブラウザで動かしたり、LLVM を使ってネイティブにコンパイルしたりできる。
言語は、EPFL の Scala Center と VirtusLab が保守している。Java や JavaScript のエコシステムのライブラリも使える。
例
公式サイトでは、Scala.js でフロントエンドを書く、Akka のアクターでノードをまたいで計算する、Spark でクラスタ上のデータを分析する、Scala CLI で簡単なスクリプトを書く、といった使い方を紹介している。最も短いプログラムは次のとおりである。
@main def run() = println("Hello, World!")