Smalltalk好きから見た『パターン、Wiki、XP 〜時を超えた創造の原則』


パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)

パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)

とても面白かったのであっという間に読み終えてしまいました。タイトルにある「パターン」「Wiki」「XP」については、以前、それぞれの成立経緯を調べてみたこともあったので、べつに買って読むほどのことはないかなーと当初は思っていたのですが、著者による、

RubyKaigi2009初日のライトニングトークの一番最初に発表します。タイトルは『パターン、Wiki、XP、そしてRuby』。テーマは、この本とRubyの関わりです。

この本には、オブジェクト指向の生みの親であるアラン・ケイSmalltalkとの関わりがあちこちに出てきます。実は本書の隠れたテーマの一つは「オブジェクト指向とは何か」なのです。そのため、書いている時はRubyとの関わりについてよく考えていました。本書にはRubyはまったく登場していませんが、それは話を広げすぎると収拾がつかなくなると考えたためです。今回は、あらためて振り返ってみて、この本の内容とRubyとの関係について考えてみたいと思います。

7/17金 17:50〜 RubyKaigi2009 Lightning Talks - えとダイアリー


といった記述を見つけて、Smalltalkスキーとしては条件反射的に「これは買わねば」と。^^; まあ、あとで冷静になって考えてみれば「(デザイン)パターン」「Wiki」「XP」の成立経緯を扱った書籍を Smalltalk への頻繁な言及無しに書くことのほうが難しいような気もしますが…。


綿密な文献調査に裏打ちされた内容は、ありがちな Smalltalk に関するトンデモな内容が紛れ込む余地などなくて、この種の書籍にしてはめずらしく安心して読み進めることができました。ささいなことですが、個人的には非常に気になる talk の t の大文字小文字の使い分け(Smalltalk vs HyperTalk)もしっかりされていますし、スティーブ・ジョブズが 1979年に XEROX PARC を見学した際に見たものを、おおざっぱに「Alto」としてしまわずに、きちんと「Alto上で動くSmalltalk」と限定しているところなども細かな配慮が見えるようで好感が持てました。


もっとも Smalltalk大スキーとしては不満が皆無というわけでもなくて、たとえば Smalltalk を“プログラミング言語”として説明しようとする記述が目立つところななんかは特に気になりました。もちろん「言語よりはむしろ環境」との解説もあるにはあるのですが、せいぜい言語処理系に開発環境が組み込まれたもの…程度にしか見積もられていないのではないかなと愚推します。

いつしか「無名の質」を自らの中に有するようになった暫定ダイナブック環境としての Smalltalk には、言語処理系にすぎない LISPRuby には求めにくい「自然都市」としての性格があり、「パターン」「Wiki」「XP」の共通の媒介者になり得たのも偶然ではない…というような展開をひそかに期待していただけに、ちょっと残念です。


とは申せ、結果的には買って読んでみて大正解でした。「パターン、Wiki、XP」というタイトルは実は マニア 一般 受けするためのある種の釣りで、本質はアレグザンダーにあり、第一章まるまるさいて書かれた概説は、ついつい後回しにしてしまっていたためアレグザンダーをまったく読めていなかった自分としてはとても勉強になりました。過去に調べ済みの各テーマについても、英語弱者の悲しさで大きく誤解していたいくつかの点(たとえば HyperPerl という Perl の実装があるわけではない…とか)を修正できたのもよかったです。


Squeak 界隈の関心事としては、id:propellaさんこと、「アラン・ケイの部下である山宮隆」さんのブログではあまり触れられていないお仕事のひとつである TinLizzie WysiWiki (はずかしながら私も実物のデモはまだ見たことがない←だめじゃん)の紹介も、ちょっとだけですが最後のほうでされています。

そんな山宮さんの訳してくださった 「ソフトウェア工学」は矛盾語法か? も“あわせて読みたい”として本書を通じて Smalltalk に興味をもった皆様にはご紹介したいですね。この文章は、もともとは Squeak の宣伝のために書かれたものですが、それだけではなく、Smalltalk がなし得たことを発案者であるアラン・ケイ自らが“総括”するような内容になっていて、示唆に富んでいます。「子供向けのプログラミング環境」というようなありがちなお題目だけではなく、アラン・ケイが“パーソナル・コンピューティング環境”をして具体的に期待するところや、その暫定実装としての(つまり“言語処理系”というだけではない) Smalltalk を適切にイメージできているかを再確認するのによい内容ですのでお薦めです。