Grails Plugin の可能性

「The Seasar Project」のサイトを訪れると、そこにはたくさの Seasar に関係したプロダクトが紹介されています。それらは(漏れがあるかもしれませんが)Mayaa を除いて、概ね『DI Container という基盤技術の上に要素技術や仕様実装を載せることを目的にしたプロダクト』が占めているように見えます。
一方、「Grails の Plugins」 のサイトを訪れると、Grails が採用している Spring Framework の『DI Container という基盤技術の上に要素技術や仕様実装を載せることを目的とした Plugin 』以外のものが存在することに気が付きます。例えば、Searchable PluginRichUI Plugin といったものですが、これら以外にも半数以上がそのような Plugin となっています。

Plugin という仕掛けは目新しいものではありませんし、そのアーキテクチャもシンプルなものから複雑なものまで、それこそ古今東西色々と今まで現れました。Grails もこの目新しくない Plugin という仕掛けを持っているのですが、実際に Grails の Plugin を実装してみると、Plugin として必要な振舞いをとても簡単に実装できることを実感できます。そして、ここにLL言語によるパワーを私は感じています。言い換えると、関わり易い仕掛けの構築においてLL言語は有用な材料となりえると Grails の Plugin を実装してみて感じています。

さて、いくら簡単に実装ができても、作られたものがそれほど有用でないならあまり意味もありません。
現在公開されている Grails Plugin の中で、多くの人に有用性を実感してもらい易いものは、先に挙げた Searchable Plugin ではないかと思っています。
このPluginは、インストールした後、簡単な設定を Domain クラスにするだけで Domain クラスを Compass(Lucene) によって検索可能にすることができる Plugin です。この Plugin のソースを覗いて見ると Compass をよく知っている人でも最低1ヶ月は掛かってしまうだろうというボリュームがあります。つまりまったく知らない人が学び利用しようとすると、その工数見積りは殆どあてにならないものになる可能性が高いと思います。しかし、この Plugin を使えばインストールして、必要な設定を Domain クラスに行い、View をちょこちょこ直すだけで、とりあえずそれなりのものが出来てしまいます。皆さんは、実際に試してみて、有用性についてどのように感じられるでしょうか。


最後に、ここまで書いて思った事と、最初に書いた「要素技術や仕様実装を載せることを目的とした Plugin 以外のもの」についてそれはどういうものなのかを書いておきます。

Grails の Plugin 周辺で起きていることを見ていると、Open Source の Application Framework に対するコミッタの裾野が広がったように見えます。
うまい表現が思いつかないので語弊があるかもしれませんが、今までは、ドキュメンテーションマーケティングなどを除外すると、要素技術の内部に関心がある人がコミッタになっていたように見えるのですが、どうも Grails は 要素技術をうまく利用することに関心がある人が新たなコミッタとして加わったように感じています。そこから考えると、再利用可能な Grails の Plugin は『再利用ができる「使い易さに拘った要素技術の組み込みノウハウ+利用規約」』といえるのかもしれません。肝心な所は「使い易さに拘った」という部分なのですが、この部分にLL言語が効いています。

ざくざくと書きましたが、Grails 1.1 (←2.0から訂正しました) ではこの Plugin の仕掛けが色々と改善されるようですので、今後さらにどのようなものになっていくのか興味深く思っています。