This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I'm a beginner to Groovy and Grails as well. Groovy contains and may use all of the features of the Java Language. In fact, groovy code can also run on the JVM. Groovy includes features like closures, meta programming etc which are over and above the features in Java language.
As of now, the only lacking in Groovy is the lack of books, articles and documentation compared to Java. It's only a matter of time before this would also be remedied.
I'm no expert on Grails or Groovy, but you need to remember that in many ways Groovy is Java underneath - you can use pure Java inside your Groovy code, call Java packages etc etc, and it all compiles down to Java byte code underneath. Groovy is a purely JVM-based language (unlike JRuby or Jython which are JVM implementations of other languages). This means you can apply all your Java knowledge but take greater advantage of Groovy as you become more comfortable with the language.
One area where Groovy might have a disadvantage is if you are using a lot of its dynamic features (duck-typing, dynamic code, meta-programming etc), because this can demand more processing at run-time, so performance may be slower. On the other hand, you can often develop Groovy code much faster and more reliably than the equivalent Java code, so speed of development may be more important for you than speed of execution.
Grails is a "code by convention" web application framework (similar to Rails or Django) implemented in Groovy and built on top of common Jave EE tools like Spring, Hibernate etc. Again, it all compiles down to Java byte code underneath, you can mix in Java code/classes, and the resulting web application is a normal WAR that you can deploy to your servlet engine/Java EE server as appropriate.
Grails makes a lot of use of Groovy's dynamic features, so it may not perform as fast as a well-engineered pure Java solution, and you need to code with the conventions to make best use of it. But as with Groovy, it may be that the speed of development and the comparative simplicity (maintainability) of the code is more important to you than execution speed.
Anyway, I'm sure there are plenty of JavaRanchers with more Groovy/Grails experience who can give you an expert opinion.
This is going to sound very fanboy'ish so I apologize in advance. I honestly cannot think of a time while using Grails and / or Groovy where I said to myself "If only I were using Java...." or "If only I were using [insert framework here]...".
Groovy and Grails are joys to work with. Sure they have their own set of idiosyncrasies and Chris is absolutely right when he talks about processing time and I'll add to that memory usage. But with modern day processers, cheap memory, and the fact that Groovy still technically gets compiled down to byte code, there are bigger issues to deal with when it comes to performance (network latency, database connections, etc).
I disagree that lack of documentation and books is an issue for Groovy and Grails. It is about quality, not quantity. There are a lot of books on Java because it has been around for 12 years. And to agree with Chris again Groovy isn't a far cry from Java. If you know Java then picking up Groovy is cake. I find the Grails official documentation to be quite thorough. I often times don't get quick responses on their mailing list but that might be because at this point I'm asking more advanced questions that take some time to figure out.
I generally don't respond to questions like this because they are too open for opinion but I figured I'd give you mine anyway. My advice is to spend some time in both Groovy and Grails and decide for yourself where you find it lacking. It's a tough question to answer.
Thank you so much to all.. When i was checking out how does it working out.. Cool i love to do it.. very easy for developers ... I feel like more ppl to get inside groovy and grails and start to give full support to it..
Sabarish Venkat wrote:Thank you so much to all.. When i was checking out how does it working out.. Cool i love to do it.. very easy for developers ... I feel like more ppl to get inside groovy and grails and start to give full support to it..