« ITアーキテクトはリーダーかマネージャーか | メイン | 10/6:要求開発アライアンスにて講演します »

「Java+スクリプト」 JavaWorld11月号

 Java World (ジャバ・ワールド) 2006年 11月号の特集1「Java+スクリプト」を寄稿しました。はっし~~君との共著で、Ruby周りでDSLについて書いてもらいました。あとSpecial thanks to 星さん、稚北東京サテ 丸山ゼミの皆様。


 JavaOne以降のテーマであるスクリプトネタの1つの集大成です。論文的に自分の思うところを書いてみました。てか、特集2って聞いていたから飛ばし気味にしたのに特集1になっちゃったのね…。ちょっと長いですが狙いについて引用しておきます。

これはソフトウェア開発に限らず、どの産業でも言えることだが、開発プロセスや手法、アーキテクチャなどが安定してくると、今度は実作業に特化した機能を持つ道具が登場し始める。建築の分野を例にとれば、木を加工するための電動かんなやガラスを加工するためのガラス切りといった具合に、加工技術が成熟するにつれてさまざまな道具が出回るようになった。

このことをシステム開発に当てはめてみると、機能に特化した道具の1つとなるのはプログラミング言語である。例として、Webアプリケーション・フレームワークとして名高い「Struts」(http://struts.apache.org/)を考えてみよう。ご存じのとおり、StrutsはMVC(Model-View-Controller)パターンに基づいたアーキテクチャを備えており、モデルやコントローラはJava、ビューはJSP、設定ファイルはXMLといった具合に、実装個所ごとに異なる言語(技術)を利用している。このように、Javaだけでなく、XMLやJSPが利用されているのは、それぞれの言語の特性を生かすためである。

XMLは、静的な構造を表すのに向いた言語だ。しかも、「階層構造を持ち、属性を扱える」というXMLの特性は、あるコンポーネントにパラメータを設定するという設定ファイルの目的にマッチする。

それに対してJSPは、Javaを使用してHTMLファイルを動的に生成することに特化した技術である。JSPの登場以前は、HTMLのタグを文字列としてサーブレットに記述しておくしかなかった。しかし、それだと表示されるHTMLファイルのイメージがわきづらく、記述しにくいのは言うまでもないだろう。JSPでは、この点が解消されているのだ。

このように、作るものに応じて“道具”を使い分ければ、開発生産性を高めることができる。その道具の1つとして、今、スクリプト言語に注目が集まっている。

 これに続いてJavaScript(Rhino/Java SE 6)を使ったスクリプト言語の説明を行ないます。ここから、

上記の点を踏まえて考えると、特にエンタープライズ・アプリケーション開発の現場ではスクリプト言語が単純にJavaの代替となることはまずありえない。ただし、スクリプト言語の良さを生かし、適切な場面で活用すれば、開発生産性だけでなく成果物の品質も向上することは間違いない。筆者は、スクリプト言語の活用パターンには次の3つが挙げられると考えている(各パターンの詳細については、Part 2で説明する)。

●アウター・ゼリー・パターン

アウター・ゼリー・パターンでは、アプリケーションの中身ではなく、開発作業自体を支援するためにスクリプト言語を使う。具体的には、ビルド用の設定ファイルの記述や、テスト・コードの記述などが挙げられる。こうした作業には非常に高い生産性が求められるため、シンプルに記述できるスクリプト言語の性質が生きるのだ。この分野には、すでに多くの実践例がある。

●インナー・ゼリー・パターン

これは、アプリケーション本体の処理の記述にスクリプト言語を利用するパターンだ。スクリプト言語は、「簡単なロジックだが、データの参照/操作が多く、コードの簡潔さが求められる」ような処理に向いている。筆者は、これに相当するのはプレゼンテーション層の処理だと考えている。この分野の利用方法については、まだコミュニティでも試行錯誤の段階にある。

●スーパー・グルー・パターン

SOAのように、コンポーネントとそれをつなぐプロセスとを明確に分離するアーキテクチャでは、スクリプト言語の利用が有効だと考えられる。ただし、これについては筆者の中でもまだ漠然としたアイデアにとどまっており、はっきりとした方向性が見えているわけではない。


 続くPart2では、アウター・ゼリー・パターンとしてGroovyAnt Scriptingテンプレート機能(コード自動生成)、インナー・ゼリー・パターンとしてProject PhobosSarugau JSを紹介しました。
 スーパー・グルー・パターンについてはBPELのスクリプト言語版みたいなものを出したかったのですが、アイデアがまとまらず。先日のGroovyでSpringを設定するをもう1歩進めないとだめですね。

 なお小ネタとして開発環境(Project Coyote)、Scripting APIなどに触れています。

 最後のメッセージは以下の通り。

本特集では、Java EEアプリケーション開発におけるスクリプト言語の可能性をお伝えするべく、スクリプト言語の基本やJava EEアプリケーションにおける活用パターン、さらにはスーパー・グルー・パターンまでを説明した。

Javaの世界でもスクリプト言語の活用に向けた取り組みはすでに始まっているが、そのビジョンにはまだ曖昧さが残っているというのが実情だろう。

筆者は、スクリプト言語とJavaの優劣を決めたいと考えているわけではない。アプリケーションの構築にあたり、開発個所に応じて最適な言語/手法を使えばよいと主張したいだけだ。読者の皆さんも、自由な発想でアプリケーションをよりよく構築する手法について考えてみていただきたい。

 かなり断言チックに書いてしまったのですが、なにかご意見のある方は反応していただけるとありがたいです…。

 あと、この号は稚内北星学園大学東京サテライト校に関係する人ばっかりなのですが(w。


B000I6AGQYJava World (ジャバ・ワールド) 2006年 11月号 [雑誌]
アイ・ディ・ジー・ジャパン 2006-09-22

by G-Tools

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/1628

コメント (1)

jojo@花輪:

最近は毎号、会社の定期購読のちら見でしたが、今号は丸山先生関連の方の記事が多くて、自分でも買おうかと・・・^^;


コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2006年09月23日 17:55に投稿されたエントリーのページです。

ひとつ前の投稿は「ITアーキテクトはリーダーかマネージャーか」です。

次の投稿は「10/6:要求開発アライアンスにて講演します」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type