与Ruby on Rails相比,Spring难吗?

时间:2009-07-13 14:14:29

标签: java ruby-on-rails spring

如果我对其中任何一个都没什么经验,但是知道足够的Java和Ruby要舒服,那么一个框架比其他框架更难学习吗?对于这些人来说,初学者更容易使用吗?

我知道很难回答。只是寻找一般的想法。

9 个答案:

答案 0 :(得分:37)

我不喜欢这种比较。

你应该将Grails或Spring Roo与Rails进行比较。 Groovy Grails是一个基于Spring的RoR系统,它使用Groovy来实现类似rails的DSL。对于RoR来说,Roo是一个含糊不清的纯粹java DSL,就像应用程序一样。

我真的不想这么说,但Spring是一个平台。您可以使用它将Java技术连接在一起。您可以将它用于非Web,非数据库,零UI应用程序。您可以使用它来编写批处理服务器。您可以使用它来编写客户端。

Rails不一样。我真的很喜欢数据驱动的网络应用程序的rails,但是我想到在rails中编写批处理系统时感到不寒而栗。

答案 1 :(得分:17)

使用Rails之后,Spring(以及任何其他Java编码)感觉乏味且耗时。

答案 2 :(得分:12)

我最近开始使用Spring MVC + WebFlow从4年开始使用ruby on rails。

Ruby是伟大的轨道是生产力egde。然而,Spring MVC更倾向于企业,其设计和模式层次超过模式。

我并不是说它是垃圾,因此学习不同的UI开发方法很有意思。

你无法比较这两者。 Spring MVC更适合于可以在Portlet开发或Web流程开发中重用的设计,这些设计可以在不改变大量Java代码的情况下进行更改。

有像春天安全这样的子框架,更不用说所有形状和类型的方面我发现这一切都是一个很大的学习曲线。可以使用JSF或JSP / JSTL呈现视图。

老实说,我认为java是一种很久没有发展的语言,人们已经在这个堆栈上投入了大量资金,他们已经破解并覆盖了代码。 注释和XML或者它是泛型,它们都旨在使语言迎合不断增长和不断发展的世界。

与红宝石这样的现代动态语言相比,存在很多生产力差异。 Ruby是简单易懂的程序员,并且在各方面都很出色。

Rails是一个非常固定的软件,由DHH和其他人认为和想要的软件决定。

是的,它非常适合网络应用程序开发,实际上当你开始编程rails时,你会觉得你已经获得了缺失的东西。

问题是铁路多年来遭到了很多负面宣传。我现在不确定它的未来,并且在每个新的Web框架中克隆的东西之间进行选择是一种风险。

ASP.net mvc,grails cakePHP每个流行的MVC框架都有克隆的rails。

与铁轨相比弹簧是否很难?

我认为,如果你运用自己的思想,两者在学习曲线方面是相同的。

答案 3 :(得分:11)

Spring和Ruby on Rails共享“约定优于配置”的moto。这显着减少了代码行。 Ruby on Rails是一个Web框架,它可以与Spring MVC以及像Hibernate这样的ORM工具进行比较。

可以说,Spring和Spring MVC或其他MVC框架和Hibernate是最接近Java世界的Ruby on Rails的。

然而,Spring的范围远远大于RoR。

答案 4 :(得分:10)

直接比较RoR与Spring不是直接或简单的比较。

RoR非常注重轻松开发网站。 RoR在制作页面,将它们链接在一起以及非常容易地保存数据方面做得很好。 RoR在设计时明确考虑了Web开发,并且是一个很好的工具。也就是说,当你需要做更多的“企业”开发(消息传递,集成等),或者需要做一些不符合RoR约定的事情时,你会感到有些痛苦。

也就是说,Spring有许多方面:Spring IoC,Spring AOP,SpringMVC等,旨在解决开发人员面临的各种不同的开发问题。 Spring拥有各种各样的技术,可以缓解您将面临的大多数开发挑战。

要直接回答您的问题,直接取决于您的要求。如果您正在开发简单的数据库支持的Web应用程序,RoR将允许您快速轻松地开发应用程序,并且初学者可以更轻松地开始使用。另一方面,Spring具有更陡峭的学习曲线和更多必要的配置,但为您提供了更大的灵活性和功能。

我认为这类讨论中经常缺少的一面是社区,工具和可用库的强大功能。 Java / Spring是一个成熟的平台,具有广泛的社区和工具支持,而Ruby / RoR拥有一个很棒的社区,工具仍在追赶IMO。

答案 5 :(得分:5)

关于Spring的事情主要是两件事:

  1. 它实际上是现有技术和库的“适配器”或“外观”;和
  2. 哲学哲学与J2EE不同之处在于它完全是关于依赖注入或控制反转,这是一种与以前不同的方法。
  3. 对于(1)例如,Spring可以执行诸如帮助减轻您使用的JMS提供程序的痛苦或执行诸如将由不同数据库生成的异常转换为Spring运行时DataAccessExceptions之类的操作。

    出于这个原因,Spring通常被标记为轻量级容器。在Spring世界(“应用程序上下文”)中,供应商差异通常只是配置问题。依赖注入做了很多事情,比如使测试更容易(正确完成)。

    学习和使用Spring的最大挑战是学习如果你之前没有做过这样的事情就这么想。

    除此之外,春天真的不是很多,这是件好事。春天不妨碍你。你选择了你想要使用的技术,Spring几乎总是使用它们并更容易地集成它们。

    进入DI / IoC思维方式后。

答案 6 :(得分:2)

Spring很大,它有两个方面,我知道依赖注入和AOP。 Ruby on rails非常适合编写Web应用程序。

如果您正在寻找一个Web应用程序,我希望您会发现ROR更容易使用,因为它更接近问题域。

如果您想使用spring编写Web应用程序,您很可能还需要学习更多技术,这可能会让您感到有些压力。然而,如果你只是为了娱乐而学习,将春天与头部第一本图案书结合起来可能很有趣。

答案 7 :(得分:2)

我曾经广泛使用过,我发现Spring和最受欢迎的“附加组件”hibernate,JSF,JSP,Rich Faces等都非常难以使用。

主要是因为个人对文档以及完整堆栈上的可用书籍和教程不满意。此外,它就像Rails一样,不像用户友好的框架。这真的感觉就像是以几乎所有方式展示开发Web应用程序的更好方式。

答案 8 :(得分:1)

我怀疑这个问题是关于Spring MVC的。 Ruby on Rails的标志之一是“约定优于配置”。如果使用正确的名称,则可以节省大量编写配置文件的工作。使用Spring,您可能需要继续并输入大量配置。

与Rails中的替代方案相比,Rails路由更加强大和简洁。在最近的版本中,Spring试图转向更多关于配置模型的约定,但对于Rails开发人员来说,它似乎仍然很麻烦。