Sponsored Link •
I asked Guillaume Laforge this question at the JavaGruppen conference in Denmark while he was giving a compelling presentation on Grails.
Guillame gave an amazing demo where he built an enterprise app interactively. He described a feature as he wrote a line or two of meaningful code, and the feature magically appeared in the application. Watching this, I could imagine building an application live, with the stakeholders in the room making requests and giving feedback as the application is created. The only thing missing was the polish, which can be added later.
Although its name certainly derives from Ruby on Rails, Grails is primarily inspired by Rails' productivity rather than its design. In particular, Grails has gone out of its way to avoid some of the well-known scaling problems with Rails. Indeed, scaling was one of my prime considerations when I asked Guillame the above question.
His answer was that there is nothing that Grails can't do that (for example) EJBs can do. As far as scalability goes, Grails is built atop Hibernate and Spring and so contains all the scaling power of those frameworks.
The most impressive thing is the way that Grails pushes the dynamic nature of Groovy as hard as it can, so that every line of code is concise and meaningful. Contrast this to EJBs: an ivory-tower thought experiment that had little to do with how people actually develop software, and as a result was terribly confusing and required all kinds of needless ceremony. Many parts (entity beans, for example) simply didn't work. The losses that resulted from having EJBs foisted upon us has been estimated in the billions.
Does this make me a Groovy/Grails guy now? No, but only because Python is still my primary language of interest, so I would probably try TurboGears or Django first. However, I can easily imagine constraints where Grails is the right solution.
You can get a quick overview of Groovy and Grails by going through Guillame's slides from Devoxx 08.
|Bruce Eckel (www.BruceEckel.com) provides development assistance in Python with user interfaces in Flex. He is the author of Thinking in Java (Prentice-Hall, 1998, 2nd Edition, 2000, 3rd Edition, 2003, 4th Edition, 2005), the Hands-On Java Seminar CD ROM (available on the Web site), Thinking in C++ (PH 1995; 2nd edition 2000, Volume 2 with Chuck Allison, 2003), C++ Inside & Out (Osborne/McGraw-Hill 1993), among others. He's given hundreds of presentations throughout the world, published over 150 articles in numerous magazines, was a founding member of the ANSI/ISO C++ committee and speaks regularly at conferences.|