views:

301

answers:

5

Someone asked me to learn Grails and then they said Ruby on Rails. They almost used it interchangeably.

What is the difference between the two?

+2  A: 

Ruby on Rails is a web framework written in the Ruby language making use of the model-view-controller pattern and object-relational mapping. It has an emphasis on convention over configuration and a lack of repetitive code.

Grails is a framework for the Groovy programming language with similar goals.

Zak
+4  A: 

Grails, formerly known as "Groovy on Rails", is a web app framework using the programming language Groovy. Ruby on Rails is very similar, but uses Ruby. (Note: I have no experience with either framework or language.)

Here is a discussion about the two. Google can provide you with many more comparisons.

David Johnstone
+1  A: 

I haven't worked with Grails but it seems to be a framework for Groovy which is similar in nature to Ruby on Rails (except that the RoR framework is built on Ruby...)

See these Wikipedia articles for more info:

http://en.wikipedia.org/wiki/Ruby_on_Rails

http://en.wikipedia.org/wiki/Grails_%28framework%29

Ganesh Shankar
+6  A: 

They are completely different technologies sharing a name pattern (e.g. Java and JavaScript). It was smart at the time to name the web framework built using Groovy "Groovy on Rails" (later asked to change its name) to get attention in a space saturated with web frameworks. One key fundamental difference (besides different programming languages) is the use of ActiveRecord in Rails versus Hibernate in Grails.

Grails embraces the convention over configuration approach first popularized by Rails.

Brian
Note that Grails also has the advantage of deploying on Apache TomCat just like any other Java Servlet, and can reuse existing Java classes, so is likely to be a more practical option in a business environment.
Emyr
A: 

How strange. Is his answer gshanker says he's never used Grails but in his comment on the question he says he's a Ruby on Rails convert and that you should use it over Grails.

Fletch