(株)毎日コミュニケーションズ様のご厚意により,
書籍 "eRuby 〜 テキスト埋め込み型Ruby" を
ブックレビューコーナー にご献本いただきました.
この本のレビューをして頂くべく,
Linux Users ML
や本サイトにおいて
公募
を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)
毎日コミュニケーションズ様および レビューアの皆様のご厚意に感謝いたします.
なお, 以下のレビューは初版を対象としています.
この本を読んだ全体の感想としては, この厚さの本に 概要・インストール方法・基本的な使い方・テクニック・豊富なサンプルプログラムが入っていることに驚きを感じました. ほかのプログラム言語の経験のある方なら, 簡単に eRuby の基礎を理解できると思います, これは本の力というよりは, eRuby の簡潔さというのが大きいと思います. そして基本テクニックでは, 重要だと思われる点を押さえて説明しているので良いと感じました. そしてこの本で一番魅力だと感じた 5 章のサンプルプログラムは、量質共に申し分ありません. しかし,今ひとつ説明不足な感じもしました. 全体的に図を使っての説明がないのが残念で, ちょっと初心者にはとっつきにくい本ではないか, という印象を受けました. 特に 1 章の eRuby の概要では図説がなく, 前知識がないと意味不明な文に思えてしまい, ここにも初心者へのとっつきにくさがあると思います. また, リファレンスの量も少し物足りませんでした.
感想にもあげましたが, サンプルプログラムの量は大変評価できるものがあります. 実用的なサンプルプログラムですし, すぐに応用が利くと思います. また, 最後に eRuby・Ruby が利用できるレンタルサーバーが記載されている点は大変親切です.
細かいことですが, 説明文の一部に「うざったい」という言葉が使われていました, 私個人の意見として, このような本にこういった言葉は使うべきでは無いと思います.
この本は初心者にはとっつきにくいかもしれないが, 買って損は無い! と思える本です. 確実に 5 章のサンプルプログラムが役に立つでしょう.
Ruby, eRuby, Web,...と, どうしても守備範囲が広がってしまうので, 焦点が定めにくくなることもやむを得ないと思います. が, それにしても, ちょっとまとまりがないように感じました. その感じを以下に書くことにします.
装丁からは Windows の初・中級者を対象とした解説本といった感じ (単なる筆者の偏見) を受けてしまいました. ところが, インストール方法の説明は, 純粋に PC-UNIX ユーザー向け. Ruby も eRuby も PC-UNIX, Windows に関係なく使えるわけだから, Windows ユーザーにも違和感の無い書き方をしてもよかったのでは. Windows ユーザーにはちょっと手を出しにくい感じです.
そのインストールの説明に関しても, ちょっとアレレという感想を持ってしまいました. 最近の PC-UNIX では, コンパイラや make などが標準ではインストールされない, という話を聞いたことがあります. それくらい, rpm ファイル等が充実しており, 自分でソースファイルから直接コンパイルしなければいけない場面がなくなってきた, ということでしょう.
そのような現状を考慮すると, 本書のように tarball をダウンロードしてくるところから話を始め, configure を実行し, さらに make というインストールの説明 (王道と言えば王道なんでしょうが) は中途半端に詳し過ぎる気がしました.
実際にソースファイルからのコンパイルを Makefile を知らないような読者に説明するのであれば, もっと詳しく書かなければいけないと思います. 例えば, 突然「tarball と呼ばれるファイルを」と書かれて, Linux 初心者でそれを理解できる人は, どれくらいいるのでしょうか. やはり, 付録の CD-ROM から rpm コマンドでインストールするには, という説明でやめておいてもよかったように思います.
eRuby は当然 Ruby の知識を必要とします. Ruby についてほとんど知らない, perl 程度には使える, 本格的なオブジェクト指向のスクリプトが書ける, と言うようにいろいろなレベルが考えられ, 解説の内容もそれに応じてかなり変わるはずです. 本書では「3. eRuby入門」でおよそ 70 ページほどを割いて, eRuby, Ruby の解説を行なっています. その説明は, "Hello World!" の表示から始まっていますが, だからと言って Ruby 初心者向けの解説というわけではありません. オブジェクトの説明もあれば, ハッシュテーブル, ファイルアクセス, 正規表現の説明もあります. つまり, なかなか高度な内容だと思います. それで, 思いっきり駆け足でいろいろなことが説明されて, Ruby 初心者には結構ハードだと思います.
「Ruby 初心者はお断り」という札を入口にぶら下げてしまって (256 倍本のように), Ruby 使用上の Tips をいろいろ書いてもらった方が役に立ちそうな気がしました.
CGI について, あるいはネットワーク接続についても, 基本的なことは知っていて, それを Ruby でどう料理するか, と言った感じで書かれています (「4. 基本テクニック」). しかも, JavaScript との連携方法にまで言及しています. そういうことに興味を持つ人を対象にした本ではないような気がするのですが. もっと基本的なことで書いておいた方がいいことがありそうに思います. たとえば, 一番気になるのが, セキュリティーの確保ということで, まずい CGI の書き方とか, 安全性を高めるにはどのような心構えが必要か, というようなことを, どこにでも書いてあることだ, と言わずに書いたほうがよかったのではないでしょうか.
本書の半分近くを占めるサンプルプログラムは, アクセスカウンタの作り方からメール送信・受信, Web メーラなど, いろいろな例が載っていますが, 多くの場合, 何の説明もないまま, サンプルプログラムが載っているだけです. 付録 CD-ROM が 1 枚付いてくるので, いちいちサンプルプログラムを全部載せる必要はないように思うのですが. ポイントになるところだけ, 解説付で載せてもらって, 他は省略してしまうか, 小さいフォントを使って, ギュッと圧縮して載せてもらいたかったです.
ということで, 一応 perl 程度には Ruby は使えるつもりでいた私としては,
1.upto(3){|i| ...}
というような繰り返し処理を見て, 結構勉強になったりもしているのですが,
全体としては, ピントがぼけていて, どのようなレベルの人を対象とした本なのか, イマイチ分からないなぁと感じてしまいました.
Ruby のテキスト埋め込み仕様である eRuby の特徴と, 2 つの実装形式である「eruby」と「ERb」の違いに触れる. また, Web 系のスクリプトとして有名な「JavaScript」との違いについても解説がある. 概論だけに短い章であるが, eRuby を始めるにあたっては良い出だしである.
なぜか eruby や erb のインストールに一つの章を割いている. eruby や erb というより, UNIX 環境でのパッケージのインストールや自前でのバイナリ化の説明までしており, これらの内容は付録的な扱いで良いのではないかと感じた.
eRuby の主な使われ方を Web CGI としながらも,
入門と言うことでコマンドラインからの直接実行でのトレーニング形式で説明が進む.
初心者向けの内容といったところだろうか.
基本的な eRuby の文法である <% 〜 %>
を除けば, 殆どの説明は Ruby の文法に関する説明である.
Ruby を使用したことがある読者にとっては, 次章に進んでも良い内容である.
CGI などのサンプルプログラムを通し, eRuby の基本テクニックを学ぶ. 同時に, JavaScript との連携や Ruby ライブラリの使用など, より高度なテクニックを身に付けることで, eRuby を使いこなすことができるようにする. 次章での色々なサンプルプログラミングを読みこなすための基本編といったところである.
10 個のサンプルプログラムをソース付きで説明している. 解説の後にサンプルプログラムをただリスト表示しているだけなので, ポイントが良く分からないところがある. CD-ROM に全ソースが入っているので, 本文ではポイントのみに絞ってソースの解説を入れたほうが良いと感じた.
eruby と ERb それぞれの簡単なリファレンスである.
デバッグ時のヒントや他環境での動作に関する Tips などが解説されている. Windows 環境下での動作に関しては, もう少しページを割いても良いのではないかと感じた.
本書は, Ruby の基礎知識を持ったプログラマが eRuby を学ぶには物足りないし, Ruby を含め初めて学ぶには若干取っ掛かり辛い構成であると感じた. eRuby の良さを理解してもらおうと, 工夫を凝らしているように見て取れるが, Ruby 経験者には遣っ付け仕事のように見て取れてしまう点が, 一寸残念である.
今回, この Bookreview の機会を与えて頂いた, 株式会社毎日コミュニケーションズ様, および, www.linux.or.jp Webmasters Bookreview 担当の方々には, 大変感謝しております. また, このようなすばらしい本を書き上げた著者に対して敬意を払いたいと思います. 本当にありがとうございました.