Software Design plus おいしいClojure入門

「おいしいClojure入門」のカバー画像
著者
ニコラ・モドリック安部重成あべしげなり 著
定価
3,058円(本体2,780円+税10%)
発売日
2013.9.26[在庫なし] 2013.11.20
判型
A5
頁数
336ページ
ISBN
978-4-7741-5991-1 978-4-7741-6174-7

概要

フランス人プログラマのニコラが、Clojureを包丁代わりにHadoopやRedisといった流行の素材を自由自在にプログラミングします。関数型プログラミングというと、敷居が高く扱うのが難しいのではないかと思い込んでいませんか。本書は、環境構築からRubyとの連携をさらっと解説した後、NoSQLでCassandraも、遺伝的アルゴリズムも、JBossもMQも、Herokuも、さらにはArduinoで組込まで、Clojureプログラミング技術のフルコースを紹介します。プログラマの能力を大きく成長させる極上メニュー、ぜひ賞味してください!

補足

本書に掲載されているソースコードは、次の場所にあります。

https://github.com/denno-clojure/mascarpone

あと、本書の巻末のソースコード対応表もぜひ確認ください。

こんな方にオススメ

  • 関数型言語の使い方に興味のある方また、海外の方のプログラミング技法に興味のある方におすすめです。あ、こんな考え方があるのか! と目から鱗が落ちるようなトピック盛りだくさん!

著者の一言

はじめに

「今さら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年 初秋 ニコラ・モドリック、安部重成

目次

第1章 Clojure環境の作り方と始め方

  • Leiningen、REPL、Clojureライブラリ、Scala、Java、JRuby

第2章 数行のコードで毎日の仕事がラクになるClojure

  • ライブラリ、JSON、ニューラルネットワーク、データ管理、HTTP、メール、DSL

第3章 開発心が沸き立つClojure

  • 現場で使える(Excel、数学、SQL、NoSQL、リモート)、テスト現場で役立つ(Selenium、ビヘイビア駆動開発、RSpec、Clojureスクリプティング)

第4章 Clojureでお手軽、チョー楽しいWeb開発

  • HTMLテンプレート、JSON、WebSocket、REST

第5章 メッセージングのベストプラクティス

  • RabbitMQ、Redis、Hadoop、JMS

第6章 クラウドとClojureの明るい日々

  • Heroku、GAE、AWS、VirtualBox、SAAS/PAASのためのツール

第7章 サウンドもClojureでコントロール

  • スピーチ、音声認識、MIDI、ビジュアルDJ

第8章 Clojureでグラフィクス

  • GPU、Processing、OpenCV、OpenCL

第9章 Androidアプリ開発で稼いでみませんか!

  • エミュレータ不要のライブ開発

第10章 今日はArduinoで組込プログラミング

  • インタラクティブにデバイス開発をしよう

第11章 Clojureでゲーム開発!

  • 3D、ゲームエンジン

第12章 プラットフォーム

  • RubyVM、.NETでClojureを動かす、ClojureをJavascriptにコンパイル

プロフィール

ニコラ・モドリック

7才の時にBasicでゲームプログラムを始める。その後、勉強のためにアイルランドのダブリンで過ごす。米国のスタートアップでエンジニアとして働き始める前は、Haskellと暗号アルゴリズムについてかなり突っ込んだ調査をする。
プログラミング探求の旅をしている頃、日本で金色のワイングラスの間にClojureと出会い、心の安らぎを見つける。それは正に一目惚れで、あろうことかメディアや金融系のシステムに使うという暴挙に出る。が、ほとんど大きな問題が出ることはなく、あらためてClojureに惚れ直し、これを世に広めるべく本にすることを決意する。
この本を書いていて気がついたのは、一緒にコンサートをして、いつも何の問題もない間柄だったら、きっと2人で問題なく本も書けるねってこと。ね、安部さん。次のコラボを楽しみにしています。

安部重成あべしげなり

株式会社マクニカでソフトウェア開発に携わる。その後、外資系ソフトウェアメーカーで日本のビジネス立ち上げに従事。現在はアパレルメーカーの情報システム部門に勤務。
ソフトウェアエンジニアとしてのスタートはC言語。C++を経てJava、最近はRailsやPythonで社内外のシステムを作ったり、C#でWindows用の小物を作ったり。
趣味は音楽。もともとはギターを弾いていたが、最近ベースを始め、たまにニコラと遊んでいる。