IBMから新しいWebアプリケーション開発向けのフレームワークがリリースされた。
IBMから新たなWebマッシュアップ開発環境 - その名も「Project Zero」 - ZDNet Japan
http://journal.mycom.co.jp/news/2007/07/04/014/index.html
Prject Zero*1の特徴は以下のとおりだ。
- アジャイルな、動的開発を旨とする
- 言語独立な環境であり、最初はGroovyとPHPをサポートする
- RESTを重視し、リソースの構造をディレクトリ構造とURIの面から支援する
- Javaで記述されているが、コンテナではない
- オープンソースライセンスではないが、ソース公開の予定はあり
すでにドキュメントは充実しているのですぐに実行し、学習することができる。
実行に必要な環境はJDK1.5.0以上、MySQLだ。
対応OSはWindowsとLinuxのみだが、Java・Groovy版は少しの変更で他のOSでも動くようになると思う。*2
ダウンロードパッケージが3つに分かれている。
デモとしてムービーがあるが、それにはEclipseがお薦めと書いてある。*3
http://www.projectzero.org/wiki/bin/view/Documentation/CoreGettingStartedTutorialDemo
CLI向けとはRuby On Railsのようにコマンドプロンプトからzeroコマンドを実行することにより、ビルドや実行を行うモードである。
とりあえずCLIをダウンロードして試した。
Project Zeroではディレクトリ構造が決定されており、ディレクトリ名やファイル名がコンベンション(日本語でネーミングルール)に従う必要がある。
開発は以下のStepになる。
- zero createでプロジェクトを作成する
- Groovyでプログラムを記述する
- zero makeで構築
- zero runで実行
- 必要に応じて上記を繰り返す
Groovyで書くソースのイメージはリソース別(URI別)にソースファイルを作成し、onGetやonPostをHTTPメソッド別に書くような感じだ。
URIにて特定されれば固体の情報が、そうでなければCollectionを返すようになる。
レスポンスにはJSONを用いる
ビルドにはApacheのivyが用いられる。これはAntの拡張のようなもので、依存性を易しく記述できるようだ。またMaven2のリポジトリに対応している。これはこれ自身で面白い。通常Zeroでビルドファイルを手で記述する必要はない。
Ajaxに関する記述があるがSCRIPTタグで直接書いているため特にZero特有とは感じられない。
またDojoに関して記述があるが、ZeroにDojoが含まれていることはないため、別にダウンロードしなければならないし、他の何でも使えると思われる。
テンプレートと書いてあるが、HTMLとロジックは分離できる。
CSSも使用できる。
Getting Startedしか読んでないが、ORMは特に存在しないように思える。
JDBCのStatement直書きのようなプログラムだ。
感想
パッケージからして非常に小さいためあまり大した機能はない。
RESTな設計をディレクトリ構成によるConventionにて指定するのは良いと思う。
URIの設計がリソース中心で設計されているのはとても良いだろう。
http://www.projectzero.org/wiki/bin/view/Documentation/CoreDevelopersGuideREST
大きな問題としてライセンスが挙げられる。
オープンソースでない上に使用制限、再配布制限がある。
特に4コアまで、同一箇所4インスタンスまでというのは理解に苦しむ。
http://www.projectzero.org/wiki/bin/view/Documentation/ZeroFAQ#How_much_does_it_cost
ソースは公開する予定があるが、変更はGatekeeperの許可無しには行えない。当然ではあるが、この点が一部の開発者の怒りを買っている。TSSやJavalobbyのコメント欄はライセンスに関しての非難で溢れている。
Project Zero: Groovy, PHP and APIs for producing REST, mashups, RIA
IBM Unveils Rails-like Web Stack Built Using Java & Groovy - Project Zero
Project ZeroにはGrailsのようなライバルが数多く存在する。
http://grails.codehaus.org/
このような競争の激しい業界で、完全にオープンでもないプロジェクトがはたして開発者の強力を得て、無事に育っていくのだろうか?
今のところZeroのフォーラムには開発者の投稿が多くあるようだ。
いろいろな意味で今後も要注目なプロジェクトだ。