概要
フランス人プログラマのニコラが,Clojureを包丁代わりにHadoopやRedisといった流行の素材を自由自在にプログラミングします。関数型プログラミングというと,敷居が高く扱うのが難しいのではないかと思い込んでいませんか。本書は,環境構築からRubyとの連携をさらっと解説した後,NoSQLでCassandraも,遺伝的アルゴリズムも,JBossもMQも,Herokuも,さらにはArduinoで組込まで,Clojureプログラミング技術のフルコースを紹介します。プログラマの能力を大きく成長させる極上メニュー,ぜひ賞味してください!
こんな方におすすめ
- 関数型言語の使い方に興味のある方また,海外の方のプログラミング技法に興味のある方におすすめです。あ,こんな考え方があるのか! と目から鱗が落ちるようなトピック盛りだくさん!
著者から一言
はじめに
「今さらClojure ? それはなぜか?」
ClojureはJava仮想マシン(JVM)をターゲットとして,2007年にRich Hickeyの手によって生まれた,まだまだ新しいプログラム言語です。
Javaはそのときどきで浮き沈みや文法的にイマイチなところがあったりしますが,仮想マシンとしてはマルチコアに対応した最適なコンピューティング環境の1つです。Clojureで書かれたプログラムは,JVM上で最適なパフォーマンスが得られるよう変換され,実行されます。
Clojureはプログラミング言語としてはLisp系に属しており,Lispの「データとしてのコード(code-as-data)」という哲学と強力なマクロのしくみを受け継いでいます。 Lisp系ということは関数型プログラミングであり,インタラクティブな実行環境を使ってClojureとやり取りをしながらプログラムをダイナミックに発展させていくという開発フローになります。
また,関数型プログラミングにおける「関数」には副作用がなく,内部状態を保持しないことから,Clojureではマルチスレッドの仕組みを単純化し,強力な並列コンピューティングをマルチコア環境で実現します。
ほかにJVM上で実行可能なプログラム言語としては,Clojure以外にもScala,JRubyなどがあり,それぞれ特徴や強みがあります。
本書は,そんなClojureのプログラミングを,フレンチレストランに出てくるコース料理のレシピに見立てて解説を試みました。レシピは,すぐに試せる軽いものから始まって,日々使えるものはもちろん,本格的なメインディッシュ,デザートなど多岐にわたります。これらを読み通すことで,Clojureに慣れることができます。
メニューやそのレシピを実践し,試食(自分でサンプルをコーディング)することで,さまざまなプログラミングの知識を得ることができます。
Clojureは単にプログラムを簡単に作れるというだけでなく,プログラムの作り方やモノを作ることに対する考え方までも変えてしまうかもしれません。一度Clojureをマスターしてしまえば,開発のスピードが上がるだけでなく,作るものをより明確に見ることができるようになるでしょう。
2013年 初秋 ニコラ・モドリック,安部重成
補足
本書に掲載されているソースコードは,次の場所にあります。
https://github.com/denno-clojure/mascarpone
あと,本書の巻末のソースコード対応表もぜひ確認ください。