Island Life

< ピアノレッスン89回目 | ピアノレッスン90回目 >

2013/04/17

『プログラミングClojure 第2版』

なかなか書影が来ないけど、今日あたり印刷見本が上がって来てて、来週には店頭に並ぶ予定。

原書から1年遅れになってしまった。原書が出たのがClojure 1.4が出る直前で、 今や1.5.1が出てるから、もう少し早く仕事すべきであったのではあるけれど、 新たなClojure使いの方々にもレビューに加わって頂き、 新しい情報を訳注で適宜フォローしている。 (訳注の数は第1版の倍以上になった。) 1.5で入った新しい機能をばりばり使いこなしたい、というような期待には応えられないけれど、 1.3以降のモダンなClojureを使い始めるにあたって基本となるところは抑えてあるので、 入門書として役に立つだろうと思う。

第1版をお持ちの方は、どのくらい違うのか気になると思うので、簡単にまとめてみる。

  • 全体:
    • 表紙の動物が変わったよ。
    • 第2版では依存ライブラリのダウンロードやREPLの起動にLeiningenを使うようになっていて、サンプルを試すのがとても簡単になった。
    • 第1版の各章末尾で作っていたLancetについての記述はばっさり削除されてる。 アプリケーションの作成については新たな章が立てられて、テストからHerokuによるデプロイまでカバーしている。
    • ページ数はほぼ同じだけど、第2版の方が文字の密度が高いので内容は増えてる。
  • 第1章: さあ、始めよう
    • 構成は第1版とほぼ同じ。細かい部分でたくさん書き直しが入っている。
  • 第2章: Clojureひとめぐり
    • 第1版で構造体(struct)を使っていた部分がレコード(record)を使うように書き改められた。 また、Javaへのインタフェース構文の紹介がここで行われる。第1版第3章「Clojureから Javaを使う」の内容の多くが第9章に移されたため。
  • 第3章: シーケンスを使ったデータの統合
    • 第1版第4章に相当。ここは細かな表現の修正や書き足しくらい。
  • 第4章: 関数型プログラミング
    • 第1版第5章に相当。ほぼ同じ。
  • 第5章: 状態
    • 第1版第6章「並行プログラム」に相当する章だが、「状態」を軸にして説明を整理し直してある。 カバーしている機能(ref、アトム、エージェント、var)は同じ。スネークゲームを作るのも同じ。
  • 第6章: プロトコルとデータ型
    • 新たに書き起こされた章。Clojure 1.2から入ったプロトコル、およびdeftypeによるデータ型の定義、レコードについての詳しい説明、reifyによる無名のデータ型を扱う。
  • 第7章: マクロ
    • 第1版第7章に相当。ここはほとんど同じかな。
  • 第8章: マルチメソッド
    • 第1版第8章に相当。細かいコードの直しなどのみ。
  • 第9章: Javaを使い倒す
    • 第1版第3章にあった、例外処理、型ヒントによる最適化、proxy、Java配列へのアクセスがカバーされる。また、新たにスタンドアロンの簡単なアプリケーションを書きながら、実践的な文脈での既存のJavaライブラリの呼び方、Leiningenを使ってjarファイルを作るまでの流れ、などを説明。
  • 第10章: アプリケーションを作る
    • 新たな章。アプリケーションの設計、開発、テスト、デプロイまでを一通り体験する。アプリケーションそのものはごく単純だけれど、Clojure的な開発プロセスを伝えることに重点が置かれているようだ。テストに関してはtest.generativeによる生成的テストが紹介される。デプロイはHerokuを使うので、わざわざ自分でサーバを立てなくても世界に向けてアプリを公開できる。

Clojureのような進歩の速い文化だと、本という媒体はなかなか追いかけるのに きついものがあるけれど、本書は実践的に必要な範囲のエッセンスをうまく 濃縮してある感じ。

サポートページはこちら。http://practical-scheme.net/wiliki/wiliki.cgi/Shiro:ProgrammingClojure2

今回も第1版の時と同じく、 XMLマークアップされたソースをsubversionで版管理しつつどんどん翻訳、 自動ビルドで生成されるpdfで確認、 レビューはチケットシステムでトラッキング、という形で行った。

(追記2013/04/25 15:17:41 UTC): pdf版も発売された。 http://estore.ohmsha.co.jp/titles/978427406913P

Tags: , Clojure

Past comment(s)

とおりすがり (2013/05/05 03:25:08):

出版おめでとうございます。早速購入させてもらいました。 第1版も購入させてもらってたのですが、第2版はプロトコル辺りが中々理解が進まないので非常にありがたいです。

Post a comment

Name: