WebObjectsは将来性あるのか?

前に「やめること」関係で書いたのに対して、今後の開発には向かないのか? という質問をコメントでいただきました。それに対してもコメントしようと思ったんですが、きちんと書いた方がいいと思ったので別記事にしました。

結論から言うと、WebObjectsはまだまだ十分な競争力があるし、Javaで書かれたwebフレームワークの中ではいちばんいいものだと今でも思う。これは仕事に使う場合はもちろんのこと、それ以外の、例えば純粋にパターンやフレームワークについての勉強がしたいといった目的のときでも変わらない。そこらのwebフレームワーク(Stなんとかとか)よりもWOを勉強した方が実りが多いと思うし、どんなO/Rマッパーよりも優先してEOFを勉強すべきだと思います。ちょっとアジってみた。
なんといってもWOの大局的な設計の見事さというのは11年経った今でも感嘆させられることがあります。同じくらい古くなってきたなーと思うところもありますし、全体の設計が一貫しててすごくきれいなのに、細かいバグもたくさんあったりして閉口することもありますが。ともあれその設計がとても価値のあるものなので、TapestryHibernateなどをはじめ様々な製品やフレームワークに影響を与えているのです。だとしたら、原典に触れてみるのがいちばんではないでしょうか。
そういえばRails はフルスタックなことが前に話題になったけど、WOもフルスタックなところが特徴です。開発環境から運用環境までの全てをサポートし、その各局面でフラクタル構造のように一貫した設計思想があらわれてくるのが特徴ですね。私がWOをやめてRailsに興味を持った原因はこのへんにあるのかも知れない。

そこまで言うならなんでやめたんだよ、というところなんだけど、まずわかりやすい理由のひとつは、言語がJavaだったこと。WOはJavaで書かれててその上で動かすアプリケーションもJavaで記述するわけですが、ここに限界を感じてました。(だから言語Java縛りを入れるなら今でも最強と思う)
もうひとつの理由はうまく説明できなかったのだけど、さっきちょうどいい表現を思いついた。要するにWOは私の中で「深追い禁止リスト」に入ったのです。何年も追いかけていたらフレームワークそのものもコミュニティもそれなりに重くなってきて、その大きな箱庭の中ではそれなりのエコシステムが働いているのだけれど、その外の出来事も気になってしまう。自分の時間は有限でしかないので、他に興味があることがあってそっちに時間を割くことにしたら深追いしてる時間がなくなるのは仕方ないのです。
これからWOをやってみよう、という人はとりあえず今はこのエコシステムの外にいるわけで、それはこっちから見たら未開拓の大地みたいなもんなので面白いと思います。私はもう何年もこの中にいたのでしがらみを断ち切るのは不可能な感じ。ついでに余談ですが、いまWOをいちばん使いこなしてる会社は他ならぬAppleです。http://jobs.apple.com/ でアクセスできるAppleのjobサイトで、ログインしてWebObjectsでキーワード検索すると山ほど出てくる。チャンスですよ! (余談の余談ですが、AppleのサイトでこのURLだと一瞬違うものを想像しますよね)
ともあれだらだら書いたけど別に将来性がないからWOをやめたというわけじゃないんだよ、ということを言いたかったのでした。今でも(ありがたいことに)いろいろとオファーはいただくのですが私自身はそれにお応えすることができません。が、そういうのを集約してうまくマッチングさせるお手伝いはできるかも知れませんので今後も何かございましたらお気軽にご連絡、ご相談ください。
最後にアサマシく。WOをいまから勉強するとしたらどのへんから手をつけるかなんだけど、今ならやっぱりこれで決まりかな。

Practical WebObjects (Expert's Voice in Java)

Practical WebObjects (Expert's Voice in Java)

この本についてはWRさんが読書会を立ち上げてくれて1年くらいかけて読み切っているのですが、そのときの資料が大量にあるので、これから自力で読む人は参考にしてみてください。
私はこの本を自腹で買ったのですが、そのはるか後で著者から直接献本してもらったので(自慢してみる)、2冊持ってます。著者によると現在改訂作業中で、来年の6月の出版を目指して新版を準備されているそうです。Web Servicesなどについての章が追加されるのと、最新の開発環境への対応(Eclipseのバージョンアップとか)を行うとか。それまで待つもよし、今買うもよし。