SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

今からでも遅くない これから始めるScala

今からでも遅くない これから始めるScala(前編)

Scalaってどんな言語?


  • X ポスト
  • このエントリーをはてなブックマークに追加

 Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を 組み合わせたプログラミングスタイルについて、解説したいと思います。

  • X ポスト
  • このエントリーをはてなブックマークに追加

なぜ、いま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が起動すれば、インストールは正常に完了しています。

図1:Scalaの対話型実行環境(REPL)
図1:Scalaの対話型実行環境(REPL)

 REPLを終了させるには「:quit」と入力します。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Scalaの基本文法

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
今からでも遅くない これから始める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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 尾崎 智仁(オザキ トモヒト)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5193 2010/06/23 11:21

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング