要件定義の不安をなくす。要件定義の不安をなくす。ユニファのバックエンド分割に学ぶイノベーションメタバース開発に必要な技術の基本知識をおさらい。Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。B)Scalaは、非常にバランスの取れたプログラミング言語です。組み合わせたプログラミングスタイルについて、解説したいと思います。MilkもScalaの利用を検討しているようです。Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。次の動作環境を想定しています。2.8.0.RC2Scalaの特徴Scalaは、さまざまな言語の特徴を取り入れた、ハイブリッドな言語仕様が特徴です。Scalaは、JVM上で動作します。Scalaのソースコードをコンパイルすると、JVM上で実行可能なclassファイルになります。JVM上で動作する言語ですので、Javaのライブラリを利用したり、JavaからScalaのライブラリを呼び出したりと、相互利用が可能です。対話型の実行環境(REPL)があります。Scalaは、動的言語ではなくコンパイルして実行するタイプの言語ですが、対話型の実行環境(REPL)によりコードを打ち込んで動作を確認しながらのプログラミングが可能です。オブジェクト指向と関数型言語の特徴を組み合わせています。Scalaでは、関数をオブジェクトとして扱うことができますし、高階関数も利用できるなど、関数型言語からさまざまな特徴を取り入れています。Scalaは静的型付け言語ですが、型推論によって型の記述を省略することができます。変数や関数の宣言時に、コンパイラが型を推論してくれるため、型の指定をいちいち行わなくてもよいのです。パターンマッチングという機能を利用することで、複雑な条件分岐を簡潔に記述することができます。豊富なコレクションクラス(Array,List,Set,Map)が用意されており、高階関数を組み合わせてコレクションの操作が簡単に行えます。Trait(トレイト)という、実装を持つことができるインターフェイスを利用して、Mix-Inができます。Language)を作成しやすくなっています。マルチコア時代を意識した、分散処理ライブラリ(Actorライブラリ)が用意されています。他にもさまざまな特徴がありますが、少ない記述で柔軟なプログラミングができることを目指して設計されている言語と言えるのではないでしょうか。2.8.0.RC2をもとにしています。2.8でさまざまな言語仕様が拡張されます。名前付き引数のサポートやパッケージオブジェクトなどです。2.8で導入される機能を紹介します。名前付き引数とデフォルト引数のサポートパッケージをimportすると自動的にimportされるパッケージオブジェクト。限定継続のサポート他にもさまざまな機能の追加やパフォーマンスの改善が行われていますので、今からScalaを始めようとする方には、2.8から入ることをお勧めします。ダウンロード」より、OSに合わせたインストーラーをダウンロードしてインストールしてください。Candidate」からプラットフォームに合わせた圧縮ファイルをダウンロードします。ダウンロードされたファイルを解凍し、解凍されたディレクトリ以下のbinディレクトリを実行パスに設定するだけです。2.8.0.RC2のインストールが終わったら、コマンドラインから「scala」と入力してみましょう。次のようにREPLが起動すれば、インストールは正常に完了しています。図1:Scalaの対話型実行環境(REPL)REPLを終了させるには「:quit」と入力します。NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。