日本語版が出ていることをYAPC会場で知る。
そういったら「一冊やるから書評汁」ということだったので、会場にて書評。
本書「PERL HACKS」は、読んで時のごとくPerl(で|を)Hackする本である。すでにHacksはシリーズとなって久しいが、そのなかでも本書はPerlとHacksというO'reillyを代表するカンバンの二乗。面白くないわけがない。
今でこそPHPやRubyなどの他の言語本も売れているが、ラクダ本はO'reillyが地歩を固めるきっかけとなったし、OSConももともとはPerlConだった。この二つのタイトルに、PerlがOpen Sourceに対して果たしてきた役割を改めて再確認した。PerlをHackするというのは、ソフトウェア工学にとどまらない。それは社会工学でもあるのだ。
といっても、本書をはじめ、Hacksシリーズを気合いを入れて読むのは似合わない。ディスプレイを見すぎて目が疲れた時に、肩の力を抜きながらよむのがいい。そうやって一度読んでおいてから、ちょっと困ったときに「あ、あのあたりに使えるネタがあったな」と思い出しながら使うのがHacksシリーズをHackする初歩だと思う。
原著の方は多いに楽しませてもらったが、それがこのたび日本語版になったというのは素晴らしいことだ。YAPC::Asiaに来てみればわかるが、優れたPerl Hackerが優れたEnglish Speakerであるとは限らない。英語に気後れしてPerlに限らずHackがこわくなるのだとしたら、実にもったいない話である。英語を使えるようになるのは大人になってからだとかなり大変だが、Perlを使えるようになるのは何歳からでも間に合うのだから。
翻訳の質は、悪くないと思う。確かに冗句まで超訳するYAPC::Asiaクォリティではない。しかし日々のHackであればこれで充分。Hackはやってなんぼ。目で読むより手が動くようになるのが正しい。だから正しく手が動かせる訳であれば充分。「反復子」とか、多少の訳し過ぎとか、冗句が少々弱くなっている点はスルー力を発揮する方向で。
本書に限らずHacksシリーズのもう一つ嬉しい点、それは判型が「動物本」より一回り小さく、そして安いことだ。本書は税込み3150円。この内容でこの値段というというのは破格である。しかも邦訳版は、わずかではあるが英語版よりも安いのだ。
「それでも、初心者には敷居が高いのでは」という方も安心を。本書には初心者にこそ使って欲しいHackも満載されている。特にはじめの方の章がそうで、ここで達人たちに道具の使い方を教われば、「正しいフォーム」でHackに臨める。そして正しいフォームを身につけることがスポーツの上達の秘訣であるのと同様、Hackも正しい姿勢を身につけることで上達速度が早まる。
これからPerlで何かをしたい人から達人レベルの人まで、読んでも使っても楽しめる、一粒で二度おいしい一冊。
Dan the Yet Another Perl Hacker
Table of 101 Hacks - oreilly.co.jp -- Online Catalog: Perl Hacksより- 1章 効率よく仕事を進めるためのハック
- FirefoxにCPANショートカットを加えよう
- Perldoc活用法
- Perlドキュメントをオンラインでブラウズしよう
- シェルエリアス活用法
- VimのなかでPerl識別子にオートコンプリートをかけよう
- Perl用の最良のEmacsモードを使おう
- ローカルスタイルを貫こう
- 動かないPerlコードをセーブしない
- チェックイン時に自動的にコードを整形しよう
- Vimのなかからテストを実行しよう
- EmacsからPerlを実行しよう
- 2章 ユーザーインターフェイス
- UIとして$EDITORを使おう
- コマンド行で対話的にやり取りしていることを確かめるには
- 端末とのやり取りを単純化しよう
- Macからの警告
- 対話的なグラフィカルアプリケーション
- 設定情報を集めるために
- Webを書き直せ
- 3章 データ操作
- ファイルを配列として扱おう
- ファイルを逆に読もう
- データソースとしてスプレッドシートを使おう
- データベースコードを括り出そう
- SQLライブラリを作ろう
- SQLを使わずにダイナミックにデータベースにクエリーを発行しよう
- データベースカラムをバインドしよう
- コストの高いデータを反復生成しよう
- 反復子から複数の値を引き出そう
- 4章 モジュールの操作
- 長いクラス名を短くしよう
- モジュールパスを管理しよう
- 書き換えたモジュールを再ロードしよう
- 個人バンドルを作ろう
- モジュールのインストールを管理しよう
- モジュールパスをあらかじめ解決しておこう
- 標準モジュールツールキットを作ろう
- チュートリアルからデモを書こう
- 外から悪いコードを置き換えよう
- CPANに乾杯
- 例外条件を磨こう
- CPANモジュールをローカルで探そう
- 単体のPerlアプリケーションのパッケージを作ろう
- 独自のレキシカルな警告を作ろう
- モジュールのバグを見つけてレポートしよう
- 5章 オブジェクトのハック
- オブジェクトを裏返そう
- (ほとんど)ただでオブジェクトをシリアライズしよう
- 属性を使って情報を追加しよう
- メソッドを本当にプライベートなものにする
- メソッド引数の自動宣言
- リモートオブジェクトへのアクセスを制御しよう
- オブジェクトを本当にポリモーフィックなものにしよう
- アクセッサを自動生成しよう
- 6章 デバッグ
- コンパイルエラーを早く見つけよう
- 見えない文字を見えるようにしよう
- テストケースを使ってデバッグしよう
- コメントでデバッグしよう
- エラーが起きたときにソースコードを表示しよう
- 無名関数のソースコードを復元しよう
- 無名サブルーチンに名前をつけよう
- サブルーチンのソースを見つけよう
- デバッガをカスタマイズしよう
- 7章 プログラマのトリック
- ディストリビューションを簡単に再構築できるようにしよう
- 仕様書を使ってテストしよう
- 開発者テストとユーザーテストを分離しよう
- 自動的にテストを実行しよう
- テスト失敗の診断をカラーで見よう
- 生きているコードをテストしよう
- ベンチマークを出し抜け
- 自分用のPerlをビルドしよう
- テストスイートをメモリに常駐させて実行しよう
- 厳しい環境をシミュレートしてテストしよう
- 8章 自分のコードを知れ
- いつ何が起きているのかを理解しよう
- データ構造を見てみよう
- 関数を安全に見つけよう
- 何がいつからコアモジュールなのかを把握しよう
- 使われているすべてのモジュールをトレースしよう
- パッケージにふくまれるすべてのシンボルを見つけよう
- クロージャのなかを覗こう
- すべてのグローバル変数を見つけよう
- サブルーチンの中身を覗こう
- インポートされた関数を探そう
- プログラムサイズをプロファイリングしよう
- Perlプロセスの再利用
- オペコードをトレースしよう
- 独自の警告を書こう
- 9章 Perlの達人になるために
- dualvarでデータを倍のサイズにしよう
- ソフトリファレンスを実リファレンスに書き換えよう
- 悩ましい部分を最適化しよう
- ハッシュに鍵をかけよう
- スコープの末尾で終了処理をしよう
- 関数の変わった呼び出し方
- シーケンスを自由自在に
- エラーチェックコードを減らそう
- もっと賢い値を返そう
- アクティブな値を返そう
- Perlに独自構文を追加しよう
- ソースフィルタでセマンティックスを変更する
- XSなしで共有ライブラリを使おう
- 1つのTCPポートで2つのサービスを実行しよう
- ディスパッチテーブルを改良しよう
- 近似値を追跡しよう
- 演算子をオーバーロードしよう
- 遊びから学ぼう
です。