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

Liz*_*Liz 26 java grails spring ruby-on-rails spring-roo

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

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

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

谢谢

fab*_*474 45

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

Rails还是Grails?

学习Ruby on Rails对Grails有什么好处?

/sf/ask/89875481/

Grails值得吗?

Grails(现在)值得吗?

现在,我将根据您传达的要求以及我从互联网上收集的信息和我自己的经验来回答您的问题.

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是我的最爱

春天的路

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

春季申请

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

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

我的底线

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

  • Spring ROO添加的方面不会影响性能,因为它们在编译时应用 - ROO没有应用运行时方面 (3认同)

tin*_*nny 43

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

使用Groovy可以在给定的时间内完成任务,而不是使用Java.通常,一行Groovy代码将等同于10行Java代码等

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

  • 糟糕的算法实现或设计.
  • 糟糕的数据库设计和/或查询
  • 需要很长时间才能完成任务,然后因此而遇到各种各样的商业关系问题.

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

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

我个人选择Grails.

  • 我真的很想把这个答案投票10次.. :-) (6认同)
  • 此外,您可以在Google App Engine上部署Grails应用程序 (2认同)
  • 我拒绝这样的观念,即在DB中花费的时间在某种程度上"始终"是问题所在.使用Rails,大部分时间都花在渲染视图上.您可以执行4-5个查询,需要2-7毫秒,但页面以某种方式需要70毫秒来处理和渲染.等效的Java页面完整地需要8-15ms.我通常发现Spring(ROO或非ROO)更快.如果您有一个过去的项目可以使用,那么Spring中的配置不是问题,正如原始海报所说的那样.这节省了很多时间. (2认同)

小智 8

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


jdl*_*jdl 5

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

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