Ask HN: Are you using Grails? What do you think about it?
One of my clients asked me to realize a project based on Grails. After two months of work i must say i found it very interesting and productive.
So i would like to know how many people build projects using Grails (and if it is possible to know, what these projects are) and your opinions about it.
8 comments
[ 0.69 ms ] story [ 28.0 ms ] threadTwo months isn't long enough to gauge productivity - there could be a lot of maintenance issues later.
I'm interested to know how many of the Groovy Language features are used in a typical Grails project, or in any Grails project for that matter. I mean, does any Grails project out there, say, transform the abstract syntax tree with Groovy's AST transforms?
I agree that the long-term analisys is always the best and that could be a lot of issue about maintenance and sure, two months aren't sufficent to master specific language features, but you can get a quick overview and feel if it is productive or not.
I don't use too much specific features but Groovy offers a lot of interesting things i may adopt in the future.
Maybe other experienced developers can answer your question better than me.
My chief complaints are:
The framework start/stop time is ungodly slow, especially when adding plugins. Many plugins are re-configured at every start, including the prominent Grails Spring Security plugin. Depending on which machine I am using, a shiny new grails app can take nearly 90 seconds to start. This causes me to lose focus, and quickly.
Speaking of plugins, there aren't many to choose from. The key plugins are there, but they are nearly all developed by the core grails team. Most of the third party plugins that I come across haven't been updated for years and were written for versions of grails long past. This means that there is usually only one option available for a certain plugin, so if you don't like the way that Grails Spring Security works or feel that it's too clunky, you're SOL. Best write your own security code.
The resources plugin that is recommended has a very steep learning curve and makes it difficult to include javascript/css frameworks if you don't know exactly what you're doing. Best just not use it and manage your own javascript and css.
Deployment is "easy", meaning that you just tell grails to wad your application into .war format. This also means, however, that re-deploying an application means that you replace 100% of the files every single time. This makes it impossible to push out changes without interrupting user access to your application.
The database management just feels awful to me, although I'm convinced that I must not be doing it right. There is a database migration plugin, but it feels very clunky and I tend not to use it. Rails has very nice database management and it is easy to rollback changes or perform modifications on tables. Doing the same with the grails database migration plugin requires several steps.
The Good Parts:
Like I mentioned before, deployment is super easy. Make a .war file, put it in Tomcat, done. Also, being able to use software like Tomcat is a bonus, because it means a much lower barrier of entry for those who are not as well-versed in configuring web servers.
If you've never installed ruby on rails or groovy and grails before, groovy and grails is by far the easier to configure. Grails is also much friendlier to the windows crowd. However, I feel that these are hardly points to make, as you only really install your framework once (sure there is updating, but ruby/rails has better version management available anyway).
If you've come from a java background, groovy will come very easily.
At any rate, sorry for the novel, but I hope this helps.