【スカラ】
Scala(スカラ) とは?
最終更新:
💡 関数型とオブジェクト指向を組み合わせる言語
関数型プログラミングとオブジェクト指向を組み合わせられる、静的型付けのプログラミング言語。JVM上でJavaのライブラリと連携でき、Scala.jsやScala NativeなどJVM以外の実行先もある。
📌 このページのポイント
- 関数を値として扱う機能と、クラスやオブジェクトを組み合わせる
- 静的型付けと型推論により、コードの整合性を確認する
- JVM上でJavaと連携でき、JVM以外の実行先もある
- Apache Sparkは利用例の一つで、対応するScala版を確認する
ScalaはJVMで動くならJavaと同じ?
関数型の書き方って?
valで宣言すれば中身も変わらない?
valは、その名前への再代入を禁止するよ。参照しているオブジェクトまで必ず不変になる意味ではない。たとえばvalで持つ変更可能なSetには要素を追加できる。不変にしたいデータは、その型や操作も選ぶんだ。
Sparkを使うならScalaが必須?
JVM以外でも使えるの?
Scala.jsはJavaScript向け、Scala Nativeはネイティブ実行向けだよ。実行先によって使えるライブラリなどが異なる。Webやデータ処理などの用途で、言語の機能、対応環境、チームの経験を合わせて選ぶんだ。
まとめ:ざっくりこれだけ覚えればOK!
「Scala」って出てきたら「関数型とオブジェクト指向を組み合わせる静的型付け言語」と思えばだいたいOK!
📖 おまけ:英語の意味
「Scala / scalable」 = 拡張できる言語
💬 Scalaという名前はscalable(規模を広げられる)に由来するよ。小さなコードから大きなシステムまで表現する言語という考え方で、使うだけで処理性能が自動的に伸びる保証ではないんだ。