Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ruby on Rails vs Grails vs. Spring ROO vs. Spring App [closed]

I'm planning on writing a simple web application that will be used by lots of users (as complicated as a simple bookmarking app) and I'm trying to decide which framework/language to use.

I'm very experienced with Spring/Hibernate and Java in general but new to both Grails and RoR (and Spring ROO). The only reason I'm considering RoR is because Java hosting is MUCH more expensive than RoR hosting (which is supported by almost any hosting vendor for 5$ per month).

Assuming the price wasn't an issue, which one of the frameworks/languages mentioned above would you recommend for a Java developer (who knows how to configure Spring/Hibernate etc.)? I'm afraid that by using RoR I won't be able to easily support many users who are using the website at the same time.

thanks

like image 994
Liz Avatar asked May 15 '10 16:05

Liz


People also ask

What is better grails or spring?

When assessing the two solutions, reviewers found Grails easier to use, set up, and do business with overall. However, reviewers preferred the ease of administration with Spring Framework. Reviewers felt that Spring Framework meets the needs of their business better than Grails.

Is Grails built on Spring?

Grails 3 is built on top of Spring Boot. When you use Grails 3, you have all the functionality of Spring Boot because a Grails 3 app is a Spring Boot app. From the developer's perspective, it doesn't necessarily look like a Boot app, but 100% of the Boot capabilities are there.


2 Answers

First you can have a look to these related questions :

Rails or Grails?

Learning Ruby on Rails any good for Grails?

https://stackoverflow.com/questions/1283935/what-technology-asp-php-joomla-rails-grails-for-a-website-from-scratch

Is Grails worth it?

Is Grails (now) worth it?

Now, I will try to answer you according to your requirements you have communicated and the information I have gathered from the internet and my own experience.

Ruby on Rails

I do not advice you to start with RoR because you are a Java developer and you will have to learn a new language (Ruby) and a new environment (Rails). The hosting issue is not a real issue. You can have a VPS hosting plan for $10 (www.enjoyvps.com) perfectly suited for small grails app. If you application needs more memory, you might need to add another 10 Bucks.

If you hosting is really THE critical factor, go with Python/Django or PHP/Kohanna (a very good MVC framework). Otherwise, according to your background, Grails is more suited for you than Rails.

Grails

Few months ago, I had the same dilemma as yours and I decided to have my way with Grails. Why?

Because it's cool !! I mean, community is very helpful and dynamic, Groovy is a pleasure to develop with (be careful : thereafter , there are good chances that you will loath Java). Also, it is a state-of-the-art framework based on very-well established technologies (Hibernate, Spring, Java) and hence, it can improve considerably your market value as a developer. Grails is my favorite

Spring Roo

Roo is Grails for Java. So if you don't want to learn Groovy and if you need pure Java application (that will always run faster than a Groovy-based app), go with it. The community is smaller than Grails but the project is supported by SpringSource who is quite active in the community. I think that if you want to go as fast as possible, this is the solution for you.

Spring Application

You should choose this option only if you don't like Spring Roo integrated technologies (Hibernate, JSP, Maven...) and you want Java absolutely. Otherwise, there is no interest (except for educational purposes) of spending hours of configuration and tuning when you can build sophisticated enterprise applications in a best-practice manner within minutes (with Rails, Roo or Grails).

Each of the options above will provide you enough performance for the application you want to build. A lot depends on best practices for website applications like good architecture design, correct usage of caching strategies and requests optimization...

My Bottom Line

If you have some time to spend for learning new concepts (Groovy, RAD...), go with Grails. If not, go with Roo. Forget about Spring App and Rails. If hosting is THE issue, so go with Python/Django. You can deploy on GAE, it's free scalable, performant and you will deal with the same concepts as Rails or Grails.

like image 145
fabien7474 Avatar answered Sep 22 '22 07:09

fabien7474


I don't understand the obsession with runtime performance. Given your scenario your primary focus should be on your performance, as in your ability to get things done with the chosen technology.

You will get more done in a given period of time with Groovy than with Java any day. Often one line of Groovy code will equate to 10 lines of Java code etc etc

Very rarely will byte code execution time be your performance issue, most often its...

  • Bad algorithm implementation or design.
  • Bad DB design and / or queries
  • Taking to long to get things done and then having all sorts of commercial relationship issues because of it.

With web applications you are usually not performing lots of long running CPU bound operations. Most of your request / response time is spent in the wire (internet routing etc) and in the DB (executing queries).

Choose a technology that takes a load off your mind and one that frees you from writing mountains of boiler plate code, so that you can rather concentrate on designing and implementing good algorithms, DB's and queries etc etc

Id personally choose Grails.

like image 43
tinny Avatar answered Sep 21 '22 07:09

tinny