はじめに
Ruby on Rails(Rails)が登場して以後、さまざまな言語でRailsタイプのフレームワークが登場し使われるようになりました。そんな中、一人ぽつねんと置き去りになっていたのが「Java」でした。Javaの世界では、既にStrutsというデファクトスタンダードとなるフレームワークがありました。いまさら、新興のRailsタイプのフレームワークなどが入り込む余地はなかった……ように見えました。
が、Railsが広まるにつれ、そうもいってられなくなります。Railsを使うと開発効率は10倍になる。ほとんどコードを書かなくとも土台部分は1分でできる。そういう話を耳にすれば、血が騒がないわけがありません。なんとかJavaでもRailsが動かないか……そう思った人はきっと多かったはずです。
「Grails」は、そうしたJavaプログラマへの一つの回答とも言えるものでしょう。Grailsは、GroovyによるRailsライクなフレームワークです。「……なんだ、Javaじゃないのか。Groovyって……確かJavaで動くスクリプト言語か何かだろう?」
確かにそうです。Groovyは、Javaではありません。が、Groovyは非常にJavaに近いスクリプト言語であり、「Javaにいろいろ便利な機能を足してスクリプト言語にしたらこうなった」と思えるようなもの、といってよいでしょう。Javaプログラマなら、ほとんどJavaと同じ感覚でスクリプトを書くことができます。そのGroovyによって作られたGrailsは、現時点で「Javaで動くRails」に最も近いものと言えるのです。
対象読者
- JSPを書くのは正直しんどい……と近頃感じる人。
- Ruby on Railsスタイルの開発に興味があるという人。
- MVCフレームワークをJavaで学びたい、という人。
なぜGroovyなのか?
「GrailsはGroovyを使う」ということを知ったとき、おそらく皆さんの多くは「なぜ、JavaではなくてGroovyなのか」と思ったのではないでしょうか。Groovyなんてマイナーな言語を使うより、Javaにすればいいじゃないか、と。
それは、Groovyを「Javaとは別の言語」と思ってしまうからでしょう。もちろん、GroovyはJavaとは違います。が、Javaの標準化プロセスであるJCP(Java Community Process)で「JSR 241」として標準化が進められている言語でもあります。いわば、「Javaの一部となりつつあるスクリプト言語」なのです。
文法的にも、GroovyはJavaに非常に近い形をしています。基本的な概念・文法はほとんどJavaのそれを踏襲しています。が、それ以外にさまざまな機能を他の言語から取り込んでいます。特に注目すべきは、Rubyです。Groovyは、Rubyから多くの新しい概念や機能を取り入れています。「Ruby的なプログラミングの可能なJava」を目指して作られている、といってもよいでしょう。
そうしたGroovyの特徴を考えれば、なぜ「Javaではなく、GroovyでRailsなのか」が分かってくることでしょう。Javaプログラマが違和感なく利用でき、かつRuby的なプログラミングができる言語、それがGroovyなのです。Groovyは「Javaとは別のもの」ではなく、「Javaを補完するもの」である、といえます。
本連載は、Grailsを使ったWebアプリケーション作成について解説を行うものですが、その前に「Groovyとはどんなものか」が分かっていないと話は始まりません。そこで第1回目は、Javaプログラマのために「Groovyとはどんなものか」について、ごくかいつまんで説明しておきましょう。