Why It Fits
選ぶ理由
- 関数型 + OOP を高い水準で融合
- 強力な型システムと表現力
- Spark などビッグデータ基盤で実績
Language Profile
Martin Odersky / 2004年登場
JVM 上で関数型とオブジェクト指向を高い水準で融合した言語。型システムが強力で、大規模データ処理(Apache Spark)やバックエンドで使われる。
Specifications
Introducing
Decision Guide
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
Why It Fits
Trade-offs
Best Fit
Deep Dive
Scala は、関数型プログラミングとオブジェクト指向を一つの言語で融合させた JVM 言語です。2004 年に Martin Odersky が公開しました。Java と同じ仮想マシン上で動き、既存の Java 資産を活かしつつ、より簡潔で安全な書き方ができることを狙っています。
Scala の核心は、表現力の高さと厳密な型システムの両立です。値が書き換わらないイミュータブルなデータと関数の組み合わせを基本に、副作用の少ないコードを簡潔に書けます。
// データを変換して合計する(関数型らしい連結)
val total = List(1, 2, 3, 4)
.filter(_ % 2 == 0) // 偶数だけ残す
.map(_ * 10) // 各要素を10倍
.sum
型を細かく表現できるため、誤った使い方をコンパイル時に弾きやすいのが強みです。
学習コストの高さが最初の壁です。関数型の概念と豊富な機能が重なり、他人のコードが暗号のように見えることもあります。加えてコンパイルが遅めで、ビルド待ちがテンポを乱す要因になります。
大量データを扱うバックエンドやデータ基盤の構築に向きます。Spark を使った分散処理や、堅牢さが求められる大規模システムで、型の安全性と表現力を両取りしたい場面で選ばれます。
Language Decision
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
ビッグデータ処理(Apache Spark)
型付け: 静的・強い型付け(強力な型推論) / 実行方式: JVM(+ Scala.js / Native) / パラダイム: 関数型 + オブジェクト指向の融合
強力な型システムと表現力
学習コストが高い
First Step
object Main extends App {
println("Hello, World!")
}公式ドキュメント