WOMeetingとWebObjectsを学ぶことの意義

ひさびすりに参加してきた。WOに関するスタンスが大きく変わってしまったので、ただの野次馬となりつつありますが。本編は中座したが、前後にいろいろ考えてたことがあるので晒しておく。


今現在、WebObjectsを学ぶ意義というのはどのへんにあるのだろうか。特に、これまで知らなかった人が新規にWOに手を出してみようと思うに足る理由というのはなんだろう。少なくとも、お仕事すると儲かるからというのではないと思う。もはやWOはweb開発において競争力のある道具ではない。それは受託開発だろうがサービス提供だろうが同じ。今でも広く使われているサービスはApple StoreiTunes Music Storeくらいしか思いつかないし。
では全く意味がないのかというと、そうも思われない。ひとつ思いつくのは設計のお手本になるかも知れないということかなあ。WOの内部はGoF本やPofEAAが知られるずっと以前から、各種パターンの実装例の展示会みたいになっている。そしてそれが実に使いやすく有機的に結合されてAPIが提供されている。だから私の場合はWOの内部構造を知ることがオブジェクト指向の理解にすごく貢献してくれた。
WOはもう10年以上の歴史があるんだど、最初からほとんど構造が変化していなくて、誕生した頃にはほぼ現在のかたちが出来ていた。5年前くらいからは、細かいところ以外は全くno touchと言っていい。Strutsとかが出てくるはるか以前からMVCをきちんと分けられるweb操作と、めちゃめちゃ抽象度が高くて高機能なO/Rマッパが実現されていた。GoF本はあったかも知れないけどPofEAAはまだないし、IoCとかDIとかは影も形もない。先進的だったとも言えるし、進化していないとも言える。
最近になって設計に関してはまわりが追い付いてきた(対してWOは変化なし)ようなところもあり。DIみたいな新しい流行にはぜんぜんフォローできない。だからWOはもうお役ご免なんだよ、という人もいるかも知れないけどそれもそうでもないと思う。PofEAAの11〜13章に出てくるパターンがほぼ全て実装されていて、実際に動作する(どころかreal worldでばんばん使われている)のを試すことができるというプラットホームはあまりないと思う。これだけでもちょっと見てみようかと思うに足る十分な理由になると思うんだよね。
とまあこんなふうに、中身を見てみると非常に勉強になるものだとは思うんだけど、私は正直言ってPofEAAでMartin Fowlerが名前をつけてくれるまでは、WOの設計の見事さをまわりにどう表現したらいいのかよくわかっていませんでした。整理されないまま日々の仕事に使っていたという感じ。今はやっと説明するためのvocabularyが手に入ったので、それを使ってWOを解説することができるのかも知れない。そんなことをやってみた方がいいのかなあ、などと思ったり、それよりも新しいことへの興味が強くなってどうでもよくなってきたり、というのを逡巡している今日この頃。