書籍概要

Software Design plus

おいしいClojure入門

著者
発売日
更新日

概要

フランス人プログラマのニコラが,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

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

サンプル

samplesamplesample

目次

第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にコンパイル

サポート

現在サポート情報はありません。

商品一覧