Common Lisp クックブックもぼちぼちやってます。
2007-11-09
■[WebObjects] WebObjects Community: Why WebObjects?

http://www.wocommunity.org/why_webobjects.html
日本じゃ注目されている気配のないWebObjects Communityの、WebObjectsを勧める理由が面白かったので訳してみた。
なぜWebObjectsなのか?
クールなガキンチョがどいつもこいつもRuby on RailsとPHPを使う時代に、「なんでWebObjectsなんか使うんだよ」と思ってないだろうか?
- WebObjectsは磨き抜かれている。WebObjectsを使えるようになったのは、1996年3月(ベータ版なら1995年後半)からだ。しかしこれまで他にも多くのツールが書かれてきたが、WebObjectsはいまだに健在だ。アップデートを繰り返し、たくさんのサイトで使われている。その中には当然、アップルの主要なサイト2つ(iTunes StoreとApple Store)も含まれる。WebObjectsは長い年月に渡って実績を積み重ねて来ている。
- 死んじゃいない。WebObjectsのリリースサイクルを見れば、もう死んでると思っても無理はない。だが違う。WebObjectsはすでに円熟の境地に達している*1。単にリリースを頻繁に行う必要がないだけだ。さらに、コミュニティはProject Wonderの助けを借りてWebObjectsを進化させている。Project Wonderには頭がおかしくなる量の(そしてオープンな)コードがある*2。
- それでもJavaだ!そう、これはJavaだ。だがJ2EEじゃない。EJBもJ2EEコンテナもStrutsも使わなくていい*3。WebObjectsはメジャーなライブラリ(JavaMail、Jakartaプロジェクトなど)と移植性のためにJavaを使っている。
- LinuxやWindowsで開発してるから、WebObjectsが使えないんだけど。公式には、まったくその通りだ。WebObjectsはMac OS Xしかサポートされていない。しかし相当の人数が他のOSで開発や運用を行っている。2007年のアンケートによれば、12%の組織がWindowsで開発している*4。運用に至っては31%の組織がMac OS X Serverではなく他のOSを使っている*5。IDEのWOLipsはEclipseをベースにしているから、することと言ったらWebObjectsのライブラリ(これだけはMacが必要になる)、Eclipse、WOLipsのインストールくらいだ。
- WOを使っているサイトなんて見たことない。NeXT時代、WebObjectsはエンタープライズ向けのツールとして販売されていた。今日のWebSphereやWebLogicのような立場で、公開するサイトよりも組織の中で使われることが多かった。だが真のWebアプリケーション(単なる動的なWebサイトではない)が求められるWeb 2.0の現在では、WebObjectsはまさに完璧な土台となる。
- Cocoaを使ってる俺に、なんでWebObjectsを使えと言うんだ?ふむ。CocoaのAPIはすっきりしているし、いいツールはあるし、開発も変更も早くできるし、KVCだってあるだろう?WebObjectsもNeXTを基盤としているから、Cocoaと共有するコンセプトが多い(特にFoundationフレームワーク)。WebObjectsならjava.util.Vectorの代わりに、すでに使い慣れたcom.webobjects.foundation.NSArrayを使える。
- J2EEを使ってる俺に、なんでWebObjectsを使えと言うんだ? EJBやStrutsのことなんか忘れて、EOFとWebObjectsのコンポーネントが使えることを喜ぼうじゃないか。新しい言語を覚えることもなくて楽しいぞ。J2EEアプリケーションのコードもいくらかはまた使えるし*6、公式のIDEはEclipseベースだ*7。もしApache CayenneかTapestryを使ったことがあるなら、まるで帰郷したような気分になるだろう。
- Ruby on Railsを使ってる俺に、なんでWebObjectsを使えと言うんだ?そいつよりもいいツール(TextMateがIDE?かかってこいRoR達よ!)、より磨き抜かれた機能、より高い移植性(Javaの先人達に感謝)がここにある。
うーん、自信があるのはいいけど賛同しにくいぞ。結局Macが必要だし、Mac以外のOSを使ってる人はまだまだ一部で、公式にはサポートされない上に態度が曖昧なアップルについてかないといけない。You、もう自分達でクロスプラットフォームのWOクローン作っちゃいなよ。
*1:細かいバグがいつまでも残ってたりするぞ?
*2:Project WonderはWebObjects最大のオープンソースプロジェクトだが、みんながみんな使っているというわけでもない。
*3:実際はコレクションクラスからして標準のものではない
*4:Windowsの開発環境を含む古いバージョンを使っている可能性もある。EclipseプラグインのWOLipsもMac OS Xのみサポート。JavaだしWindowsでも開発できることはできるが、相当の工夫がいる。
*5:Javaなので他のOSで動かすのは難しくはない。インストールはちょっと面倒だけど。
*6:現在のWebObjectsはJ2EEをサポートしている。
*7:LeopardからXcodeでWebObjectsの開発はできなくなった。それと、アップルはWOLipsを公式なIDEとは言っていない(実質的には協力してるみたいけど)。現在、Leopard以降に公式なIDEは存在しない。