回答:
IMO、Grailsの最も弱い部分は、データモデルの移行機能(ala Rails ActiveRecordの移行)の欠如です。さまざまなレベルの品質のサードパーティプラグインがありましたが、公式のものはありませんでした。
しかし、Liquibaseが拡張され、データベース移行プラグインになったことを発見したばかりです。これは有望に見えます。
プラス面として、私がGrailsを使用してきたすべて(単純から中程度に複雑なWebアプリ)にとって、それはほとんど素晴らしいものでした。Java / Hibernate / Spring / Spring MVCスタックに比べて、開発の生産性が約2倍から3倍向上すると思います。
grails環境のロードに時間がかかり、テストの実行に必要な時間はごくわずかであるため、統合テストの実行は遅くなりました。これにより、dbに書き込むコードを開発する際の所要時間が長くなります。もう1つの問題は、Kalebの回答(データの移行について)で既に言及されています。また、私が立ち往生しているときはいつでも、冬眠や春に利用できるヘルプと比較すると、ヘルプを得ることができるフォーラムの数が制限されていることがわかりました。
フレームワークを使用する現在の落とし穴は、現在のgradleビルドシステムへの不十分な統合です。現在、これを実現するためにプラグインを使用していますが、プラグイン自体は新しいバージョンのgrailsで壊れています(最近使用して修正しようとしたため)。彼らはgradleをgrailsビルドシステムの一部(ガントではなく)にすることでこの問題を将来のバージョンで修正する予定ですが、簡単に統合できるビルドシステムの欠如が問題です。ただし、この落とし穴は将来消えます。
別の落とし穴は、言語の動的な性質です。あなたは本当にすべてのテストを書かなければなりません。コード内のエラーのほとんどは、実行時に発見されます。それは実際にプログラムについて異なる考え方です。このフレームワークでは、コンパイラに依存して間違いを見つけることはできません。私はそれが悪いと言っているわけではありません、それはただ違うだけです(そして、あなたがそれに精通していないなら落とし穴です)。
私は個人的にグレイルよりも単純なグルーヴィーを使用しましたが、私は両方とも素晴らしいと思いますが、グレイル/グルーヴィーの概念全体が好きです。
(私の個人的な経験では)唯一の欠点は、IDEのサポートが不十分なことです。私は(むしろ楽観的に)SpringSourceには優れたEclipseビルドがあり、Grailsの強力な支持者であると思っていました。groovyプラグインのインストールは難しく、コード補完は不安定です(動的言語では常に問題がありますが、60個のメソッドを選択してもあまり役に立ちません)。最新のリリースでは、groovyプラグインをインストールするとJavaデバッガーが壊れます!