Groovy / Grails :: Ruby / Rails :: 2011框架的状态
是的,有几个类似的线程存在,但我们现在在2011年,而且有很多改变。
当我最初尝试学习框架(放弃编译时间和其他呻吟事件)时,Grails 1.3.6与v1.3相比有了很大的改进。
花了几个月的最新版本,我印象深刻,protyping应用程序是一个微风(GORM是伟大的!)。 在开发模式下,不再需要重启,禁止更改域类。 Groovy.lang是太棒了(记住,这与我在PHP中的日常工作生活相比)。
现在,另一方面是Ruby / Rails,我没有什么经验可以阅读Ruby文档和探索Active Record(与GORM进行比较)。 来自PHP / JQuery,groovy语法是蛋糕,ruby不是很多,虽然可访问。
Ruby / Rails风靡一时,而Groovy / Grails似乎正在加速。
我想听听两个阵营都必须说的话(引起郎朗战争的欢迎):现在在2011年,两种语言/框架的优缺点。select一个框架时,知道你要进入什么是很重要的,在那里,新手将受益,专家可以发泄; – )
Rails和Grails都是当前版本的优秀框架。 你真的不能出错。 以下是我觉得有趣的一些事情:
轨道
- Rails(Ruby)不像Grails(Groovy)那么好。 您将需要更多的马力来运行您的应用程序。 对于像EngineYard这样的PaaS选项(未来希望有一个AWS BeanStalk Rails选项),这并不是什么大问题,但是运行一个Rails应用程序和Grails应用程序可能只需花费一点点(显然JRuby也是一个选项虽然)。
- 目前Rails的NoSQL替代品略胜一筹,但Grails正在迅速赶上
- Rails有更多的插件,但是如果你使用了一些没有被维护的插件,那么这会导致麻烦(它们中的很多目前还不能用于Rails 3)。
- Rails比较成熟,在这个时间点上有更多的特性,因为它的时间更长
- Rails的REST支持是惊人的
- 还有比Grails更多的“大”Rails网站
- Ruby比Groovy – TIOBE更受欢迎
- 对Oracle没有依赖,哈! (Grails显然需要JVM)
Grails的
- Grails比JRuby更好地集成了JVM
- Grails GORM比ActiveRecord(恕我直言)好,虽然Rails 3为其他持久性选项打开了一扇门,但所有的书籍,教程等都使用ActiveRecord
- 在视图中,Grails View taglibs比<=%…%>要好
- Grails插件是有据可查的,清楚地说明它们是否被SpringSource支持
- SpringSource正在大力投资于Grails
- 未来将会有比Grails更多的公司职位,但是更多的初创公司使用Rails(你想在哪里工作?)
我的观点
- 几年前我使用过Rails,现在我正在开发一个Grails项目
- 我喜欢它们都比Django(Python)或Zend Framework(PHP)更好,
- 我计划接下来学习Lift(Scala)
我的build议
- 如果你从来没有做过Java开发,并且正在为一个中小型网站开发一个小型项目,那么请使用Rails
- 如果您在一家使用Java的大公司工作,请尝试将Grails作为他们应该投资的“下一个Java框架”
- 如果你正在研究“下一个twitter或者foursquare”,那么你很聪明,自己来回答这个问题! 🙂
我第一次用Rails开始一个项目时,我真的很惊讶:
-
我怎样才能从“服务”中分离“存储库”? 哦,我的上帝:我必须把业务逻辑放在控制器上……我无法想象一个真正的Ruby on Rails大项目:37signals上有人记住分离Business和Domain / Repository的基础知识。 Rails的文件夹/类结构不关心这一点。
-
第二只袜子:“活跃logging”。 尝试devise一个真正复杂的面向对象的业务层,并使用Rails模型(Active Record)进行映射…实际上:不。
-
6个月后,我们的项目正在运行:R&R在四核服务器上使用apache + passanger来占用80%的CPU(和内存…),而Postgresql数据库则处于假期(3-4%的CPU)。哦,我的上帝(新)
我的旧ASP / VB6应用程序能够在真实的后台上下文中为300个并发用户提供服务,在独立的机器(2001年1个CPU核心服务器)上安装真实复杂的数据库和复杂的业务。
当然,约定和Ruby的语法是可爱的…没有人需要一个编译器(好…unit testing用于这porpouses 90%的时间…只是为了解决消失的打字每次我改变一些代码…“请,编程上帝,关心我的手指错误”)
Grails的第一个障碍:
- 基于Spring框架(IoC,Hibernate,…)的基于Rails的“酷”
是的!!!
- 有一个干净的域/服务分离。 NICE!
- 你最终可能会忘记Java。
Rails相当成熟,拥有巨大的生态系统。 我不熟悉Grails或者在线支持,但是我在你的文章中看到的红旗是你承认Grails正在追赶Rails。
Ruby是一个绝对的喜悦(而这来自一个旧的C ++黑客…为什么,在我以前只用一个hex键盘编程的那天,年轻的whippersnapper …现在得到我的草坪!)。
有一些关于ruby的东西让我很难跟着(method_missing我在看你),但是我确信可以说任何语言。
我? 我会用ruby和铁轨去。
对于Grails来说,我仍然认为即使赶上了,它也有两个主要的东西,那就是rails不会有一个简单的方法:
- 扩大
- 唾手可得的成熟Java库(个人geotools等)
Ruby on Rails非常出色 – 比如web dev的Pink Floyd。
Groovy在Grails上是一个像样的副本 – 有点像澳大利亚的Pink Floyd节目…
顺便说一句 – 我们都在工作 – 而且我看到许多Grails开发人员最终学习Rails并坚持下来。
我也看到了Rails开发人员学习Grails,但他们都不喜欢它。
大约一半的时间,我们的Java开发人员都学习Grails,并且远离Ruby。
恕我直言 – 如果你真的了解得相当好,你几乎总是会喜欢Ruby和Rails。
你也必须考虑你的IDE。 当我开始使用rails时,这是非常痛苦的。 卢西丁是超级慢和崩溃,我认识的每个人都使用textmate。 Grails有STS(基于eclipse),并为您提供所有你需要的function。