グレイル対レール。サポートが良いのはどっち?また、中規模のアプリを開発するのに適しているのはどれですか? 最も重要なのは、どちらがより多くのプラグインを持っているか?
13 に答える
言及する価値のあるもう 1 つのこと: モデルに関しては、両方のフレームワークの設計哲学が多少異なります。Rails がより「データベース指向」であるのに対し、Grails はより「ドメイン指向」です。
Rails では、基本的に、(フィールド名とその詳細を使用して) テーブルを定義することから始めます。次に、ActiveRecord はそれらを Ruby クラスまたはモデルにマップします。
Grails では逆です。まずモデル (Groovy クラス) を定義し、実行すると、GORM (Grails ActiveRecord に相当) が関連するデータベースとテーブルを作成 (または更新) します。これが、Grails に「移行」の概念がない理由かもしれません (ただし、将来のリリースで導入されると思います)。
一方が他方より優れているかどうかはわかりません。私はそれがあなたの文脈に依存すると思います。
そうは言っても、私はまだどちらを選ぶべきか迷っています。Tom が言っていたように、Java に依存している場合でも JRuby を使用できます。したがって、Java の再利用だけが唯一の基準であってはなりません。
あなたが Java 開発者で、既存のすべてのエンタープライズ Java ライブラリと機能にアクセスしたい場合は、Grails を使用してください。
Railsはより成熟しており、プラグインが多く、ユーザーベースが大きく、ドキュメントとサポートが充実しています。必要に応じて、JRubyで実行してJavaライブラリにアクセスすることもできます。
グレイルズにはいくつかの興味深い特質がありますが、まだレールでそこにいるとは言えません。ただし、主にJavaまたはGroovyの開発者である場合は、それを好むかもしれません。それ以外の場合は、今すぐ中規模のプロジェクトにRailsを使用することをお勧めします。
非常に多くのJavaライブラリがあるため、私はgrailsと呼んでいます。しかし、私は Java のバックグラウンドを持っているため、少し偏見があります。
アプリが大きくならない場合は、どちらでも十分です。どちらを選択するかは、既存のインフラストラクチャに依存する必要があります。たとえば、すでに Java サーブレット コンテナー サーバーを実行している場合、Rail 用に別のサーバーをプロビジョニングするのではなく、Grails に固執することもできます。
以前はレールを使用していましたが、かなり気に入りました。しかし、私の現在の会社には多くの古い Java コードがあったため、grails を選択するのは自然なことでした。
私が Rails を使い始めたとき、それを使用しているサイトはほとんどなく、ドキュメントもひどいものでした。素晴らしい Railscast と railsforum.com がありましたが、普通でないことはすべて自分で行います。それを展開するのは悪夢であり、mongrel-cluster を使用することは実際には本番環境に対応していませんでした。誰もが目にするように、これは非常に異なっており、より成熟し、あらゆる場所に展開されています。
1 年以上前に、上記の理由により、grails を学ばなければなりませんでした。Rails と非常によく似ているため、grails への移行は非常に簡単でした。ここでも、レールの初期段階と非常に似ていましたが、大きな違いが 1 つあります。Java コードを簡単にインポートできるため、grails ユーザーは、本番環境でテスト済みのほぼすべての Java ライブラリを使用できます。従来の Java プロジェクトを grails プロジェクトにうまく統合できたので、微調整はほとんど必要ありません。また、プラグインの開発が急速に進んでいることにも気付くでしょう。これは主に、開発者が grails の「フック」を作成しているだけで、その基盤となるコードが古い Java ライブラリであるためです。grails のデプロイは、WAR ファイルのデプロイでもあります。
もう 1 つ確認する必要があるのは IDE です。Eclipse に慣れている場合は、grails 用の eclipse-STS がすべての機能を備えています。rubymine は大きな進歩を遂げましたが、まだ多くの Rails 開発者が textmate を使用しています (rubymine の初期バージョンは、私の ubuntu を停止させるために使用されていました)。
要するに、どちらも優れた MVC フレームワークです。RoR はより成熟しており、より多くの開発者がいます。Grails は 3 ~ 4 年前に RoR があった場所ですが、進歩ははるかに速くなっています。お役に立てれば。
これは、RubyやGroovyのスキル、処理するレガシーJavaシステムがあるかどうか、アプリケーションをどこにデプロイするかによって異なります。
私は当初、Railsに興奮していました。当時、仕事はすべてJavaであるため、仕事中のアプリケーションサーバーにデプロイするオプションはありませんでした。これは変更されました。Railsは素晴らしいと思っていたのに、すでに配置されているJavaインフラストラクチャとアプリケーションを放棄してRubyに切り替えることはできませんでした。Groovyを既存のJavaソリューションと組み合わせることができるため、Grailsは機能します。
仕事以外では、Rubyは価格帯の下限でホスティングを見つけるのが簡単です。Grailsは多くの既存のJavaプロジェクトを使用するため、小さなアプリであっても.warファイルは大きくなる傾向があります。専用サーバーがある場合、これは問題ではありませんが、128MBのRAMを備えた共有ホスティングで実行しようとしても機能しません。
2008年はGroovyとGrailsの本の年ですが、Railsのリソースはまだまだたくさんあります。
特定の基準に基づいて、Railsは学習するためのより良いフレームワークである可能性があります。Javaの知識、または手荷物がある場合;-)、Grailsを確認する必要があります。
昨日、Grails を作っている人たちが Spring ソースに買収されたのを見て、私は Grails と言うでしょう。
また、Groovy は Java のスーパーセットであるため、Ruby を学ばなくても、知っている Java を使用するだけですぐに飛び込むことができます。これからは、多くの動的なことも学び、最終的には Java コードの代わりに Groovy コードを作成しますが、それによって参入障壁が低くなります。
どこまでもグレイルズ!
Rails のアプローチ (ドメイン クラスを指定し、それ以外はすべて Grails に生成させる) よりも、Rails のアプローチ (データベース テーブルを構築し、Rails にその他すべてを生成させる) よりも優れているので、私は Grails を使用します。Java 開発者であれば、Java コードが有効な Groovy コードであり、Groovy クラスが Java クラスであるため、統合が双方向でシームレスに行われることも気に入るはずです。
Javaから来たGrails開発者として、私は最初からそれを愛していました。
今、私はRailsを掘り下げ始めており、gemに問題があります。Grailsを使用したMySQL接続のセットアップは非常に簡単でしたが、Railsで機能させるのにまだ苦労しています。
gem install mysql
XCodeがインストールされていないため、コマンドが機能していません。
メモリ消費の問題がなければ、Grailsは完璧だと思います。
私はマーブをお勧めしますか?Ezra Zygmuntowicz によってゼロから高速化のために構築された、ラックベース、モジュラー、ORM に依存しない製品です。だんだんと暑くなってきましたが…
Rails はより主流ですが、柔軟性に欠けます。Grails はまだ急速に変化しており、開発者のエコシステムは同じではなく、ドキュメントもそれほど成熟していませんが、Rails が機能しない状況でも機能します。
私はターボギアとレールを少し使用しました。レールを使用する前は、スクリプトにgroovyを使用していたため、grailsを使用してみました。グレイルズは難しい経験でした。
小さなプログラムでは、グルーヴィーなコールスタックを読み取るのは困難ですが、いくつかの重いフレームワークを追加すると、単純なエラーによって数百行が生成される可能性があります。レールとは異なり、私が使用していたGrailsバージョンには、自分のものとフレームワークに属するものを判別するのに役立つツールがありませんでした。
私は本当にデータベースを必要としなかったので、最終的にはGoogleWebツールキットの使用に切り替えました。
GrailsとGroovyは有望だと思いますが、現在、GrailsとGroovyを使用するユーザーエクスペリエンスは面倒です(現在は昨年の春です)。
働く環境にもよると思います。
Grails は、より企業レベルで受け入れられているようです。
Rails には Koolaid の雰囲気があり、レガシー システムを持たないスタートアップには非常に受け入れられます。
個人的には両方使っています。Grails の世界はまだ始まったばかりですが、Grails-one のシンプルなプラグインで認証/承認がより簡単であることが気に入っています。シロ。Rails が JVM に依存しておらず、起動に 1 分もかからないところが気に入っています。
Rails 内で BDD/Cucumber を設定する方がはるかに簡単であることがわかりましたが、それは私が慣れているからかもしれません! Grails の世界 (cuke4duke など) では、これをより簡単にするための取り組みが確実に行われています。また、Grails を開発するアクティブなコミュニティもあります。
ちょうど私の2p·
両方試してみてください:)