BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Grailsにまつわる誤解

Grailsにまつわる誤解

GrailsのコミッターであるMarc Palmerは、「Grailsは自分が使うには未成熟だ」といった開発者がGrailに対して抱く一般的な誤解の一部について投稿(source)した。

ライブの商用サイトの増加がこれに対する最良の答えです。極めて昔からあるJava JDKは言うまでもなく、定評あるテクノロジーであるHibernate、Spring、SiteMeshでも構築されています。Groovyは登場から3年以上経過しています。

さらに、「Grailsはインタープリタ型言語(Groovy)を使っている」という誤解に対しては、次のとおり述べている。

Groovyはランタイム時にJava VMバイトコードにコンパイルします。決してインタープリタではない、以上です。何があってもそれが真実です。

最後にGrailsが単にRailsのクローンなのかどうかについては、次のように述べている。

Ruby On Railsはいくつかの素晴らしい発想を導入し、ひとまとめにしました。Grailsは、Groovy、Javaプログラマーが意味を理解できる形で、その一部をGroovy、Javaの世界に適用しながら、Rubyにはない多くの機能・概念を加えています。

Graeme Rocherが、「JRuby on Railsがあるのに誰がGrailsを必要とするのか?」といった自身の誤解・疑問リストを使って補足(source)している。

これは典型的であり、Grailsが何かということについての最大の誤解の1つの基礎となっています。JRuby on Railsは、RailsアプリケーションをGlassFishなどのJava EEコンテナで実行するための優れた方法です。説明は以上です。Grailsは非常に異なった目標を持っています。Groovy言語へのRailsの移植ではないのです。Spring、Hibernate、Quartz、Compass、SiteMeshなど非常に強力で安定した主力コンポーネントをひとまとめにし、「設定に勝る規約」(Convention over Configuration)を取り入れることにより、重複を排除する(DRY)のです。

私たちは一からやり直しているのではなく、Grailsの中核の大部分がJavaであるため、より堅牢かつ高パフォーマンスなのです。実のところGrailsは根本的にSpring MVCアプリケーションであり、Glassfishだけでなく、WebLogic、WebSphere、Oracle ASなど大規模な商用製品などの主要なコンテナーすべてにディプロイ可能です。

では、「なぜGrailsはエンタープライズ向けとしてRailsよりも適しているのか?」という質問に対してはこう答えている。

たくさんの理由があります。最大の理由はSpringとHibernateの2つです。現在の状況では、非常に多数の組織がSpringとHibernateを採用しています。これらの組織には既存のSpringの事情、既存のHibernateのドメインモデルなどがあるのです。

Grailsで作業を始める前、私は同じ状況にありました。Grailsは、これらのフレームワークとできる限りシームレスに統合するよう設計されています。ですから例えばJavaで書かれたHibernateのドメインモデル、そしてマッピングファイルをGrailsのアプリケーションに落とし、ダイナミックファインダーとGROMをすぐにでも使い始めることが可能です。

さらにGrailsのコントローラーは、要求、応答、セッションなど標準のServlet APIを用い、他のサーブレットと並行して置くことが可能です。煎じ詰めると単に覆いの下にSpring MVCアプリケーションがあるだけなのです。一方Railsは、ほぼEJB2の設計意図と同じように(「これを絞り込むまでショックと恐怖に耐えていてください」)設計されています。言い換えると、自分とフレームワークを結び付けるActiveControllerやActiveRecordなどのフレームワークオブジェクトを拡張しているのです。

またRailsでのドメインモデルのようなものもありません。Railsのモデルはデータベースのテーブルです。それはそれで結構なのですが、エンタープライズではデスクトップとウェブの両方において複数のアプリケーションで同じドメインモデルが再使用されるケースが多いのです。これは、JavaではクラスをJARにおいてマッピングファイルとパッケージ化することにより、効果的に実現されます。

Grailsについて他の質問がある場合、またはその使い方について他の誤解がある場合、ここかInfoQのJavaコミュニティでぜひ共有してほしい。

原文はこちらです:http://www.infoq.com/news/2007/07/grails-misconceptions

(この記事は2007年7月11日にリリースされました)

この記事に星をつける

おすすめ度
スタイル

BT