プログラミング Scala - はしがき

この文章は「Programming Scala」の文章の一部を翻訳したものです。つぎのライセンスに従います。
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial 2.1 Japan License.

Preface

「Programming Scala」は モダンなオブジェクトモデル,関数プログラミング,そして高度な型システムの全ての利点を提供する エキサイティングな新しい言語を紹介する。コード例が沢山詰まっていて,この包括的な本は どうすれば直ぐに生産的になれるのかをあなたに教えて,そして 何がこの言語を 今日のスケーラブルで,分散型の,分散同時並行処理(concurrency and distribution)をサポートするコンポーネントベースアプリケーションに適したものにしているのかも説明する。また あなたは どの様にしてこの言語が プログラミング言語のプラットフォームとしての高度なJava仮想マシンの長所を 取り込んできるのかを学ぶだろう。

programmingscala.com や 本のカタログページでもっと学べる

Welcome to Programming Scala

プログラミング言語は様々な理由により人気になる。しばしば,与えられたプラットフォームに接しているプログラマは特定の言語か,ベンダーにより規格化された言語を好む。多くの Mac OS プログラマObjective-C を使い。多くの Windows プログラマC++ .NET 言語を使い。多くの組み込みシステム開発者は C と C++ を使う。

しばしば,工学技術の成果によりもたらされる人気は 熱狂と流行に方向性を与える。C++Java,そして Rubyプログラマの間の熱狂的な信仰の対象だ。

しばしば,或る言語は人気になる なぜならそれがその時代のニーズに合っていたからだ。当初 Java はブラウザベースのリッチクライアントアプリケーションに完璧に合っていると見られていた。Smalltalkオブジェクト指向モデルのプログラミングが主流になったときに そのモデルのエッセンスを捕らえていた。

今日,同時並行性,heterogeneity,常に稼動するサービス,そして いつも短く早歩きのスケジュールの興味の対象は 関数プログラミングの中だ。それはおそらく オブジェクト指向プログラミングの優位性を越えると思う。パラダイムを混ぜ合わせることは人気なだけではなく,不可欠だ。

私たちは他の言語から Sclala に引き寄せられた なぜなら Scala は今日私たちがビルドする類のアプリケーション(信頼性,ハイパフォーマンス,高集中型のインターネットやエンタープライズアプリケーション)のための汎用プログラミング言語の中に欲しいと思う最適なクオリティを 実現している。

Scala はマルチパラダイム言語で,オブジェクト指向関数プログラミングの両方をサポートしている。Scala はスケーラブルで,小さなスクリプトから大きなスケールのコンポーネントベースアプリケーションまでの全てに適している。Scala は先進的だ,世界中のコンピューターサイエンス学科の学部から最先端のアイディアを組み込んでいる。それにもかかわらず Scala は実用的だ。この作者は,Martin Odersky,Java の開発に数年関わっていてプロフェッショナルな開発者のニーズを理解している。

私たち二人は Scala による簡潔で,エレガントで,表現力豊かなシンタックス及び私たちが自由に使えるそのツール群の広さに魅了させられた。

もし あなたが,早く徹底的な解説が欲しいと思う,経験豊かなプログラマなら,この本はあなたの為のものだ。あなたは あなたの現状の言語の補助か代わりとして Scala の価値を見極めるだろう。もしかすると あなたは既に Scala を使うと決めていて あなたは その特性とどのように使えば良いのか学ぶことをご所望だ。どちらにせよ,接しやすい方法で 私たちはこのパワフルな言語をあなたに啓蒙する。

私たちはあなたがオブジェクト指向プログラミングに良く精通していることを想定するが,私たちはあなたが事前に関数プログラミングに接していることを想定しない。私たちはあなたは一つ以上の言語の経験があることを想定する。私たちはJavaC#Ruby,そして他の言語との類似を引き合いに出す。もし あなたがそれらの言語の幾つかを知っていれば,私たちは Scala の特徴を類推して指摘するほうが 沢山の新しい特徴を指摘するよりも 簡単だ。

オブジェクト指向(Object-Oriented Programming:OOP)か関数プログラミング(Functional Programming:FP)のバックグラウンドのどちらから来たとしても,それらの相補性の実際の説明で,あなたは Scala が どの様にエレガントに両方のパラダイムを兼ね備えているかを見ることが出来る。沢山の例を使って,あなたはどこでどの様にして 多くの異なったデザイン問題に OOP と FP のテクニックを応用するのかを理解するだろう。

最後に,私たちはあなたが Scala に魅了されることを望んでいる。Scala が最終的にあなたの日々の言語にならないとしても,私たちは あなたが使う何かの言語によらず応用できる洞察力を獲得してほしいと思う。

Conventions Used in This Book

(以下はオライリーの本のいつもの文章なので省略)