ダウンロード サンプルファイル (265.0 B)
Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を 組み合わせたプログラミングスタイルについて、解説したいと思います。
なぜ、いまScalaなのか?
TwitterがScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。
Scalaは、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。
Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。
対象読者
- ある程度プログラミング言語の知識がある方
- Javaは知っているが、Scalaも学んでみたいと思っている方
- 関数型言語に興味のある方
必要な環境
次の動作環境を想定しています。
- J2SE 6.0 JDK
- Scala 2.8.0.RC2
Scalaの特徴
Scalaは、さまざまな言語の特徴を取り入れた、ハイブリッドな言語仕様が特徴です。簡単に列挙します。
- Scalaは、JVM上で動作します。Scalaのソースコードをコンパイルすると、JVM上で実行可能なclassファイルになります。
- JVM上で動作する言語ですので、Javaのライブラリを利用したり、JavaからScalaのライブラリを呼び出したりと、相互利用が可能です。
- 対話型の実行環境(REPL)があります。Scalaは、動的言語ではなくコンパイルして実行するタイプの言語ですが、対話型の実行環境(REPL)によりコードを打ち込んで動作を確認しながらのプログラミングが可能です。
- オブジェクト指向と関数型言語の特徴を組み合わせています。Scalaでは、関数をオブジェクトとして扱うことができますし、高階関数も利用できるなど、関数型言語からさまざまな特徴を取り入れています。
- Scalaは静的型付け言語ですが、型推論によって型の記述を省略することができます。変数や関数の宣言時に、コンパイラが型を推論してくれるため、型の指定をいちいち行わなくてもよいのです。
- パターンマッチングという機能を利用することで、複雑な条件分岐を簡潔に記述することができます。
- 豊富なコレクションクラス(Array,List,Set,Map)が用意されており、高階関数を組み合わせてコレクションの操作が簡単に行えます。
- Trait(トレイト)という、実装を持つことができるインターフェイスを利用して、Mix-Inができます。
- 暗黙の型変換(implict conversion)などを利用して、DSL(ドメイン固有言語,Domain-Specific Language)を作成しやすくなっています。
- マルチコア時代を意識した、分散処理ライブラリ(Actorライブラリ)が用意されています。
他にもさまざまな特徴がありますが、少ない記述で柔軟なプログラミングができることを目指して設計されている言語と言えるのではないでしょうか。
開発環境の構築
本稿では、Scalaのバージョンとして、本稿執筆時点での最新版RCであるScala 2.8.0.RC2をもとにしています。現在はRC2ですが、Scala 2.8でさまざまな言語仕様が拡張されます。例えば、名前付き引数のサポートやパッケージオブジェクトなどです。簡単にScala 2.8で導入される機能を紹介します。
- コレクションライブラリの再設計
- 名前付き引数とデフォルト引数のサポート
- パッケージをimportすると自動的にimportされるパッケージオブジェクト。
- 限定継続のサポート
他にもさまざまな機能の追加やパフォーマンスの改善が行われていますので、今からScalaを始めようとする方には、2.8から入ることをお勧めします。
JDKのインストール
JDKは、「Java SE ダウンロード」より、OSに合わせたインストーラーをダウンロードしてインストールしてください。
Scala 2.8.0.RC2のインストール
Scala 2.8.0.RC2のインストールは、公式サイトにアクセスし、「Release Candidate」からプラットフォームに合わせた圧縮ファイルをダウンロードします。ダウンロードされたファイルを解凍し、解凍されたディレクトリ以下のbinディレクトリを実行パスに設定するだけです。
- Scala Distribution | The Scala Programing Language(http://www.scala-lang.org/downloads)
対話型実行環境(REPL)の起動
Scala 2.8.0.RC2のインストールが終わったら、コマンドラインから「scala」と入力してみましょう。次のようにREPLが起動すれば、インストールは正常に完了しています。
REPLを終了させるには「:quit」と入力します。
この記事は参考になりましたか?
- 今からでも遅くない これから始めるScala連載記事一覧
-
- 今からでも遅くない これから始めるScala(後編)
- 今からでも遅くない これから始めるScala(中編)
- 今からでも遅くない これから始めるScala(前編)
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 尾崎 智仁(オザキ トモヒト)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

