tag:blogger.com,1999:blog-11836937.post6736098040904070645..comments2023-06-29T08:37:44.895-07:00Comments on J2EE Spot: Grails vs. Play Framework comparisonMichael Gavryhttp://www.blogger.com/profile/05074907291485653887noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-11836937.post-69910750477361131622013-04-21T16:27:31.826-07:002013-04-21T16:27:31.826-07:00I'm with you. I'm 99% certain that I'...I'm with you. I'm 99% certain that I'm going back to Grails after several months fighting to get Play to do what I wanted, the way that I wanted. It's not worth the aggravation when there are other frameworks that just work. http://www.stupidjavatricks.com/?p=278Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-11836937.post-30886655023199529822012-06-25T14:59:34.730-07:002012-06-25T14:59:34.730-07:00I know that Vaadin can be used inside of Grails an...I know that Vaadin can be used inside of Grails and there is a plugin: <a href="http://grails.org/plugin/vaadin" rel="nofollow">http://grails.org/plugin/vaadin</a>. It has 12 positive reviews so it must be good.Michael Gavryhttps://www.blogger.com/profile/05074907291485653887noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-74354218199054164122012-06-25T13:56:39.971-07:002012-06-25T13:56:39.971-07:00Thanks for the article.
Would be interested to rea...Thanks for the article.<br />Would be interested to read the same with Grails and Vaadin :)<br /><br />I have read that we can program with groovy under vaadin, to verify.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-11836937.post-38119262579206252862012-06-20T16:33:37.934-07:002012-06-20T16:33:37.934-07:00There is going to be a competition!! See Play vs. ...There is going to be a competition!! See <a href="http://uberconf.com/conference/denver/2012/06/session?id=25584" rel="nofollow">Play vs. Grails Smackdown</a>.<br /><br />Matt Raible - the guy behind AppFuse that I still use in InternetPolyglot is going to work on the hands-on analysis and benchmark of these two frameworks. The heavy artillery arrived! :)Michael Gavryhttps://www.blogger.com/profile/05074907291485653887noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-26168346072530411842012-06-20T15:57:19.369-07:002012-06-20T15:57:19.369-07:00Hi everyone, thanks again for all your thoughts an...Hi everyone, thanks again for all your thoughts and feedback. I've just added my recent experience with Grails and Play Framework at the end of the original post (Update 2012-06-20). Bottom line - while Play tries to win over Scala community Grails wins over me.Michael Gavryhttps://www.blogger.com/profile/05074907291485653887noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-5328590111961951022012-06-16T01:02:52.007-07:002012-06-16T01:02:52.007-07:00Interesting post. Very detailed and not too much i...Interesting post. Very detailed and not too much information at the same time. It gives and idea of where to start from if you don't know much about both frameworks.Anonymoushttps://www.blogger.com/profile/00888723806697455279noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-81443232679797072392012-03-20T08:54:37.830-07:002012-03-20T08:54:37.830-07:00@anton
IntelliJ has 'groovy' support in t...@anton<br /><br />IntelliJ has 'groovy' support in the free community edition, but explicitly no Grails support. If you're doing Grails, I've not found anything close to the level of intellij support. There's still some things they can improve on, but it's far better than anything else I've tried.Michael Kimsalhttps://www.blogger.com/profile/00888097375768951607noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-81588057822838986282012-02-14T07:43:27.661-08:002012-02-14T07:43:27.661-08:00A note of caution for people looking into Play: Th...A note of caution for people looking into Play: The Play developers have embarked in a massive rewrite of the framework for version 2, which is backwards-incompatible with the current version 1.2. The suggestion of Play developers for those asking what the migration path is for current Play apps is that there is no need to migrate, you can just stick with Play 1.2 for current apps - very infuriating. The ORM has changed, the templating engine has changed, the build process has changed, and the core of the framework has been rewritten in Scala - while documentation is pretty good, I find myself digging into the framework code a lot, this will become much harder with the move to Scala. <br />Regarding Grails, while I have not personally used it yet, I plan to use it for future projects. Groovy is much easier to read and write for a Java developer than Scala, and I doubt that SpringSource would be so cavalier as to introduce a new version of Grails that has no migration path for current Grails apps, or rewrite the core of Grails in Clojure.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-11836937.post-89651216070834109432011-11-17T10:26:36.260-08:002011-11-17T10:26:36.260-08:00@mistaecko - criticism is accepted. I will go and ...@mistaecko - criticism is accepted. I will go and update my post on Quora, specifically saying that this is not an expert comparison.Michael Gavryhttps://www.blogger.com/profile/05074907291485653887noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-27519265903060514732011-11-17T05:31:34.266-08:002011-11-17T05:31:34.266-08:00You posted this article as a response to a questio...You posted this article as a response to a question on Quora that asked for opinions from anyone who has had 'significant experience with both'. <br /><br />In that context I completely agree with the criticism voiced by Joel. <br />I came here to read an expert opinion and not a 'tutorial comparison'. <br /><br />Other than that, thank you for sharing your opinion!<br /><br />Coming from Grails and wanting to know more about Play, it was an interesting read. I am still looking for that expert opinion though...mistaeckohttps://www.blogger.com/profile/15190031797321503097noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-52842233102693018432011-10-24T17:51:54.798-07:002011-10-24T17:51:54.798-07:00> Cloud ready - I don't think Play is bette...> Cloud ready - I don't think Play is better than Grails in this regard. I am running my Article Manager on Amazon EC2 and quite content with it.<br /><br />Sorry, I should've been more specific, with Iaas (infrastructure as a service) you can certainly run wathever you want, I meant support for Paas (platform as a service) like, GAE, heroku, cloudbee, cloudfoundry, red hat's openshift, playapss, etc...Anonymoushttps://www.blogger.com/profile/17063247234291086301noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-32137650274957750472011-10-23T13:31:27.525-07:002011-10-23T13:31:27.525-07:00@Joel Grenon - one more correction. You are saying...@Joel Grenon - one more correction. You are saying that my evaluation is based on what I found in different sources. Incorrect. 70% of my evaluation is based on my own experience - I wrote it in the beginning of the post that I developed one app using Grails (after going over Grails quick start and its book) and I went through Play tutorial and followed it very thoroughly.Michael Gavryhttps://www.blogger.com/profile/05074907291485653887noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-58261571094984628292011-10-23T13:25:58.271-07:002011-10-23T13:25:58.271-07:00@opensas - thank you for additional thoughts! Very...@opensas - thank you for additional thoughts! Very useful!<br /><br />I am going to do my own performance benchmark for Grails and Play "Quick start" apps. Nothing too comprehensive again, just hitting one page with multiple threads using JMeter.<br /><br />Cloud ready - I don't think Play is better than Grails in this regard. I am running my Article Manager on Amazon EC2 and quite content with it.<br /><br />@Joel Grenon - you see, here is the thing: I DON'T want to invest excessive amount of effort to learn a framework before I make a choice. I expect the framework to show itself in the best light to me. It seems that if Play wants to win over Grails on the security criterion - let them change their tutorial and include the role-based authorization. I am not going to dig through tons of undocumented stuff and mailing lists.<br /><br />My post is for people like me. If your approach is to learn all existing frameworks in and out before making a choice - this evaluation is not for you.Michael Gavryhttps://www.blogger.com/profile/05074907291485653887noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-21525073709118344572011-10-23T10:45:20.331-07:002011-10-23T10:45:20.331-07:00Very good article, it's good that you share yo...Very good article, it's good that you share you thoughts<br /><br />I have no experience with grails, but I've done a couple of things with play and I think there are a few things that are not quite accurate:<br /><br />IDE integration: play also comes with and Eclipse plugin which adds a few more things, more over, IntelliJ Idea play support is comming in version 11, here's a preview and several screencasts http://blogs.jetbrains.com/idea/2011/10/play-with-intellij-idea-eap-build-110187/<br /><br />Security: you should definitely have a look at deadbolt module that does exactly what you are asking for - http://www.playframework.org/modules/deadbolt-1.4.2/home<br /><br />Persistence: in fact play uses JPA, with Hibernate as implementation, by default, with a few nice helpers, more over you have several modules for GAE datastore, mongo, and other nosql data sources<br /><br />Template engine: as you said is a matter of taste, but play also let's you develop performance critic tags in java using fastTags (http://playframework.wordpress.com/2010/11/26/fasttags-in-play/) and you also have other tempalte engines, like japid (http://www.playframework.org/modules/japid) and cambridge (http://code.google.com/p/cambridge/wiki/UsingWithPlayFramework)<br /><br />Jquery/Ajax: play is pretty agnostic about client side technology, you can use what ever you like. Ajax is quite simple, you just have a simple tag that helps you build the ajax call using the router system (http://www.playframework.org/documentation/latest/ajax)<br /><br />Production: play has support for several Ids and configuration for each environment, you shouldn't need to change config file for production (http://www.playframework.org/documentation/latest/ids)<br /><br />Performance: well, it's really odd that you say it's a tie. One of the more obvious advantages of play would be perfomance. In fact, the most critized part of play is the groovy template system, because of it's performance, if you use another template engine, like rapid, play i pretty fast. have a look at this http://www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/, play bit japid is almost as fast as static content<br /><br />I would add another item that seems to be more relevant everyday, cloud computing support. Here's a list of play hosting options, which include google application engine, heroku and res hat's openshift. (http://stackoverflow.com/questions/6974265/experiences-on-free-and-low-cost-hosting-for-play-framework-applications and https://github.com/playframework/play/blob/master/documentation/manual/deployment.textile)<br /><br />On the other hand I would also take into account grails springsource support, the community and the books and documentation available<br /><br />Saludos<br /><br />sasAnonymoushttps://www.blogger.com/profile/17063247234291086301noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-41990406512838269402011-10-23T09:10:14.987-07:002011-10-23T09:10:14.987-07:00You should really spend some times learn Play a li...You should really spend some times learn Play a little bit more. Your analysis is based on what you DID find from various sources, but it doesn't reflect the reality. For example, in Security, you get Grails to win because you think there's no roles in Play secure... while there are and the Play security framework, while not as complete as Spring Security, is by far much easier and less "AOP magic" and thus supports the needs for 99% of web apps. <br />Ajax support is built-in in Play, development cycle is an order of magnitude faster with Play. Just take a look at Grails reloading dependencies each time you touch a model file... <br />And for production, Play supports multiple "contexts" in a single configuration file and support deploying in a WAR if you need too. <br /><br />Please give a try to Play before making such an analysis.Anonymoushttps://www.blogger.com/profile/05310053305489035842noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-85753704835099961922011-10-23T04:49:38.962-07:002011-10-23T04:49:38.962-07:00This comment has been removed by a blog administrator.Anonymoushttps://www.blogger.com/profile/17063247234291086301noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-26695987083254323562011-10-22T03:52:46.370-07:002011-10-22T03:52:46.370-07:00I have learned both of these frameworks: Grails an...I have learned both of these frameworks: Grails and Play. I started with Grails, then Play. After learning Play I would do the next project with it. IMHO, for me, Play seems to be easier and lightweight. But this is just my first impression from both of them, without any practical knowledge with the frameworks.<br /> <br />Also I would go with Play b/c of Scala. At this moment I am still learning it. But I prefer it to Groovy. Scala seems to me more thought-out. Comparing Scala and Groovy I recall James Strachan words (the founder of Groovy): "<i>I can honestly say if someone had shown me the Programming in Scala back in 2003 I'd probably have never created Groovy.</i>" (http://en.wikipedia.org/wiki/Groovy_%28programming_language%29)Askhathttps://www.blogger.com/profile/06763259159450443912noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-20167082307225777992011-10-22T00:46:12.753-07:002011-10-22T00:46:12.753-07:00@Mikhail
You don't have to pay for IDEA. The ...@Mikhail<br /><br />You don't have to pay for IDEA. The Community Edition comes with Grails and Groovy support out of the box.Anonymoushttps://www.blogger.com/profile/11951065633319406772noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-15724950747869633482011-10-21T12:37:46.295-07:002011-10-21T12:37:46.295-07:00@ Burt, even though they don't call themselves...@ Burt, even though they don't call themselves Groovy on Rails I call them Groovy on Rails. Why? Because the language is Groovy and their platform is Rails. They can call them whatever they want and I will call them however I want :)Michael Gavryhttps://www.blogger.com/profile/05074907291485653887noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-53920696874800460762011-10-21T12:34:11.031-07:002011-10-21T12:34:11.031-07:00@Anton. About IDE support. What I said is I didn&#...@Anton. About IDE support. What I said is I didn't like Grails support in Eclipse (and I've been in Eclipse for ages) and IDEA was pretty good but you need to pay for IDEA. Play works well in Eclipse right from the bat.Michael Gavryhttps://www.blogger.com/profile/05074907291485653887noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-3306643895837449192011-10-21T12:32:18.292-07:002011-10-21T12:32:18.292-07:00Thanks everyone for your comments! I just want to ...Thanks everyone for your comments! I just want to add a couple of points:<br /><br />Both Grails and Play are moving targets and they run head-to-head in adding new features. I think it's great because it keeps creators of both of them on the tips of their toes.<br /><br />@Hans: As I said in my post - this evaluation is subjective and I don't want to pretend that it is uber-comprehensive. If you can properly evaluate the frameworks - please be my guest, you can post it here, it's a free forum :)Michael Gavryhttps://www.blogger.com/profile/05074907291485653887noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-71437794299818800992011-10-21T10:46:26.006-07:002011-10-21T10:46:26.006-07:00Regarding changing your configuration file for pro...Regarding changing your configuration file for production, that's not true. You can specify configuration items by environment. for example:<br /><br />%dev.somevariable=100<br />%prod.somevariable=200Unknownhttps://www.blogger.com/profile/05200942434469924850noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-12318199701489139362011-10-21T10:43:04.058-07:002011-10-21T10:43:04.058-07:00Mate why did you even bother to make this post if ...Mate why did you even bother to make this post if you know yourself you didn't properly evaluate either of the frameworksHanshttps://www.blogger.com/profile/17037110226754585441noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-78942156617001706242011-10-21T10:41:06.644-07:002011-10-21T10:41:06.644-07:00Really interesting post, and I think your ideas ab...Really interesting post, and I think your ideas about the modules page would make a big difference also. I think it has been raised in the Google Groups, but seeing it in a comparison view like this makes you realise the importance.<br /><br />There are a few things in here that I think are slightly inaccurate that may be worth clearing up.<br /><br />Production - Play does not need to have config changed to move to production. It can be done with a start up flag as well as a config change.<br /><br />Starting play with play run --%prod will run it in production mode<br /><br />Also, Play can run inside a servlet container. It has a ServletWrapper than allows you to deploy to all major servlet containers (see this link for details - http://www.playframework.org/documentation/1.2.3/deployment)<br /><br />JQuery/Ajax - this is pretty simple. It comes pre-configured with jquery, and has a few core functions (groovy tags) that assist in calling serverside actions with jquery etc. Again, the Play documentation specifically explains how to use Ajax in Play.<br /><br />http://www.playframework.org/documentation/1.2.3/ajax<br /><br /><br />I haven't used Grails a great deal, so I won't pretend to argue if these points above change your view on which framework wins, but wanted to offer some clarification.<br /><br />Thanks<br />Wayne<br /><br />P.S. Glad my post on Stackoverflow helped in the WebService comparison.Wayne Ellishttps://www.blogger.com/profile/04241736298296365490noreply@blogger.comtag:blogger.com,1999:blog-11836937.post-43300961358485643312011-10-21T10:15:22.087-07:002011-10-21T10:15:22.087-07:00In the production point I would like to add that y...In the production point I would like to add that you can make a package of a Play application just with the command: play war in a terminal. It creates a war package that you can upload to a servlet container as tomcat or glassfish or any others (look at: http://www.playframework.org/documentation/1.2.3/deployment).<br /><br />For the jQuery/AJAX topic, I say that every play application includes in the directory: "/appPlay/public/javascripts/jquery-1.5.2.min.js". But, is not a problem wether you use jQuery or Scriptaculous or Prototype...Is very easy to receive responses using AJAX with one of these libraries. With the methods: renderHTML, renderJSON, render...even in the routes file you can define the format of the response.<br /><br />For the persistence I say that play is better, because is JPA, so, if you come from a Java background you don't have to learn another framework.<br /><br />Another thing I would notice is that Play! is more Java-like, you don't need the terminal for everything, just for create the project and run it or make it for your preferred IDE (eclipsify, netbeansify, idealize).OrBhttps://www.blogger.com/profile/11194033790387981533noreply@blogger.com