Ruby on Rails vs Grails vs. Spring ROO vs. Spring App

时间:2010-05-15 16:41:08

标签: java ruby-on-rails spring grails spring-roo

我打算编写一个简单的Web应用程序,它将被很多用户使用(像一个简单的书签应用程序一样复杂),我正在尝试决定使用哪种框架/语言。

我对Spring / Hibernate和Java非常有经验,但对Grails和RoR(以及Spring ROO)都是新手。 我正在考虑RoR的唯一原因是因为Java托管比RoR托管更加昂贵(几乎所有托管供应商都支持每月5美元)。

假设价格不是问题,您会为Java开发人员(谁知道如何配置Spring / Hibernate等)推荐上面提到的哪个框架/语言? 我担心通过使用RoR,我将无法轻易支持同时使用该网站的许多用户。

感谢

6 个答案:

答案 0 :(得分:45)

首先,您可以查看这些相关问题:

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?

现在,我会根据您的要求以及我从互联网上收集的信息和我自己的经验来回答您。

Ruby on Rails

我不建议你从RoR开始,因为你是一名Java开发人员,你必须学习一门新语言(Ruby)和一个新环境(Rails)。托管问题不是一个真正的问题。您可以以10美元(www.enjoyvps.com)获得VPS主机方案,非常适合小型grails应用。如果您的应用程序需要更多内存,则可能需要再添加10个雄鹿。

如果托管确实是关键因素,请使用Python / Django或PHP / Kohanna(一个非常好的MVC框架)。否则,根据你的背景,Grails比Rails更适合你。

Grails的

几个月前,我和你的一样陷入困境,我决定选择Grails。为什么呢?

因为它很酷!我的意思是,社区是非常有帮助和充满活力的,Groovy很乐意发展(小心:此后,你很有可能会厌恶Java)。此外,它是基于非常成熟的技术(Hibernate,Spring,Java)的最先进的框架,因此,作为开发人员,它可以显着提高您的市场价值。 Grails是我最喜欢的

Spring Roo

Roo是Java的Grails。因此,如果您不想学习Groovy,并且您需要纯Java应用程序(总是比基于Groovy的应用程序运行得更快),那么请继续使用它。该社区比Grails小,但该项目得到了SpringSource的支持,他在社区中非常活跃。我想如果你想尽快走,这就是你的解决方案。

Spring Application

只有当您不喜欢Spring Roo集成技术(Hibernate,JSP,Maven ......)并且您绝对需要Java时,才应该选择此选项。否则,当您可以在几分钟内以最佳实践方式构建复杂的企业应用程序(使用Rails,Roo或Grails)时,没有兴趣(教育目的除外)花费数小时的配置和调优。

上面的每个选项都将为您要构建的应用程序提供足够的性能。很大程度上取决于网站应用程序的最佳实践,例如良好的架构设计,正确使用缓存策略和请求优化......

我的底线

如果您有时间花在学习新概念上(Groovy,RAD ......),请使用Grails。如果没有,请与Roo一起去。忘了Spring App和Rails。 如果托管是问题,那么请使用Python / Django。您可以在GAE上部署,它是可自由扩展的,高性能的,您将处理与Rails或Grails相同的概念。

答案 1 :(得分:43)

我不理解对运行时性能的痴迷。根据您的情况,您的主要关注点应该是您的性能,就像您使用所选技术完成工作一样。

使用Groovy,您将在给定的时间段内完成比使用Java更多的任务。通常,一行Groovy代码将等同于10行Java代码等等

字节代码执行时间很少会成为您的性能问题,通常是......

  • 糟糕的算法实现或设计。
  • 糟糕的数据库设计和/或查询
  • 长期以来完成任务,然后因此而出现各种商业关系问题。

对于Web应用程序,您通常不会执行大量长时间运行的CPU绑定操作。您的大部分请求/响应时间都花费在线路(Internet路由等)和DB(执行查询)中。

选择一种可以减轻您的负担的技术,让您免于编写大量的锅炉板代码,这样您就可以专注于设计和实施优秀的算法,数据库和查询等等。

我个人选择Grails。

答案 2 :(得分:8)

我在公司选择了Roo而不是Grails和Rails。运行时性能,易于调试,良好的Eclipse集成(毕竟它是普通的旧Java),在运行时没有发生“黑魔法”。实际上,运行Roo应用程序不需要Roo运行时库,只需要像Hibernate和AspectJ这样的库依赖项。您可以查看生成的代码,以便准确了解正在发生的事情。对我来说也是一个很大的问题,谷歌选择Roo作为创建GWT应用程序的首选工具,他们正在支持它。到目前为止,我对Roo印象非常深刻,我认为它将成为不久的将来的首选工具。

答案 3 :(得分:5)

RoR的性能问题将由5美元托管计划引起,而不是由语言和框架的选择引起。考虑Heroku您的托管,因为您可以开始便宜/免费,然后根据需要进行扩展。

对于一个简单的书签应用程序,Rails可能有点矫枉过正。在权衡您的选择时,请查看Sinatra框架。

答案 4 :(得分:2)

你看过Gaelyk了吗? http://gaelyk.appspot.com/

这是适用于Google App Engine的轻量级Groovy框架

答案 5 :(得分:1)

我知道这篇文章有点老了。现在是2012年,Spring Roo在3个月前刚刚发布了1.2.2版本。

我是一名Java开发人员刚刚启动了一个雄心勃勃的项目,我将推出一个广泛采用的Web应用程序。我正在经历Spring Roo&弄脏了我的手。我的第一印象很好,但是当我通过互联网阅读它是一个快速原型设计的良好框架并且仅用于开发CRUD操作等时,我感到有点失去动力使用它。

但我个人认为Spring Roo(SP)让我的项目从已经实现的最佳实践开始,选择创建的文件,我可以将其用作自定义使用的模板。显然,我不怕编码。我们总是要自己编码,我不想要任何“魔法”。

我还试图环顾RoR场景,并且很容易被所涉及的学习曲线所吓倒。

我认为Spring Roo社区并没有太大的吸引力。它有什么具体原因吗? 还有更好的选择吗?我对最终确定一个既强大又可扩展的框架的决定感到困惑。我不想成为Twitter现在的位置,其中2年的RoR代码使他们重新考虑他们对RoR的选择。 Spring Roo对我来说是最好的选择吗?