At this link : http://www.ohloh.net/p/grails/reviews I found a review of grails which is quite negative. Currently, my knowledge on grails is not much wider than trying simple getting started examples and I was wondering about your opinion on this advanced features that this guy mentions there?
I'd like to comment on each one of these one at a time. Keep in mind I am just now learning Grails as well. But I've been talking to a lot of people about these very issues. Also keep in mind this review is 10 months old. Grails 1.1 has been released since then and has a ton of improvements.
1. The biggest problem is definitely the lack of support for advanced features, specially in queries. If you want to do any kind of advanced querying then you will be writing SQL code. The framework simplifies SQL to an ... [More] unrealistic point. If you are using associations (something so basic) then good luck doing any kind of advanced filtering, sorting, etc... with the built in tools.
Specifically about the "with the build in tools" bit of this comment. I'm not sure what built in tools he is talking about. Grails is nice in that it probably takes care of 90% of the queries you need with dynamic finders and CRUD. The other 10% is easily solved by digging straight into hibernate, if you feel like you need to. This is really no different than most frameworks, and most don't even cover the first 90%
2. Debugging is a mess. If you have an error during your bootstrap or other start up problems then good luck if you can even read the stacktrace in your command prompt (They have over 500 calls in the stacktrace). I had to pipe mine out to a file then read the file in notepad.
If your bug is in your controller/view then you get a nice webpage with the exception. The only problem is that the error message on the website is 95% not your actual problem. It will tell you the problem is on line 150 while the problem is most likely down another 50 lines.
This honestly has more to do with Groovy than with grails. Debugging any dynamic language is a PITA. Heck, debugging Java is a PITA. It's just not a fun part of the gig. I agree though that work needs to be done withing Groovy to make debugging easier. But I figure that is going to be really hard.
3. The documentation is poor. I used Grails to do a semi-advanced project and outside of the basics, the documentation will not get you far. I found myself often searching on google for answers and through trial and error.
Smells of old article. The documentation currently, as far as I am concerned is quite good. Especially considering all the available books right now. And there are 2 books that I know cover 1.1 including this weeks promo book. How is that bad?
4. Memory consumption and performance. Grails is a memory hog. My website when doing absolutely nothing consumes nearly 80 megs. One of the main problems that may increase your memory consumption and/or CPU is because of problem #1 on this list. You will so often be doing advanced things manually that should be done by the database and/or the framework. Many times I had to duplicate/triplicate objects to accomplish what I needed.
Well, lets see, Spring, Hibernate, Sitemesh, Java, yea, you're going to eat up some memory. Add some ram and get over it.
5. Buggy. The framework randomly throws Hibernate errors (concurrent session problems etc..) when I am browsing my website. You refresh the page and the problem goes away.
Again, smells of old article. Grails 1.1, so far for me, has been quite stable. But if you find a bug, JIRA it and I know the grails team takes all things seriously regarding bugs.
All in all this is one of those frameworks that have a lot of potential but it is simply not ready to be used for any real world scenarios. It has obviously not been used for many website applications because it lacks way too many basic tools.
Really? http://www.grails.org/Testimonials has a nice list of folks using Grails in real world applications. Every framework is going to have issues. Engineers aren't perfect and we make mistakes. I think Grails is a great framework at this point and I'd have no problems pushing it for a lot of different types of projects. If I had to have one reservation about Grails it would be Hibernate. I'm still not convinced it scales. But that is not really Grails' problem and find me something that does what Hibernate does, better.
Grails is a great framework that promotes productivity and simplicity. Getting started with Grails is very easy and being productive takes a few hours of reading and a few hours of working with a sample project.
The underlying technologies of Grails; Spring, Hibernate, GORM and Groovy (to list a few) provide a developer with a tool set to get a lot of heavy lifting done with little effort which in turn allows the developer to focus on implementing their design. Some developers don't understand how to take advantage of what is exposed to them and thus, end up re-inventing the wheel or writing SQL.
If a developer is not familiar with the underlying technologies and/or 3rd party technologies that are accessible via plug-ins, Grails can seem overwhelming, but the community is great, the documentation is good enough and there are plenty of resources online. Once a developer reaches a certain comfort level with Grails, he/she can take advantage of a myriad of technologies that solve many problems we face as developers, it just takes a little time.
As for someone who has been working with RAD/Websphere for a few years, Grails is extremely refreshing. The review seems to be from someone who just got frustrated.