This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
First of all, as a best practice, you should post your question once, so that all answers will be in the same post, both for your benifit, and for the community.
Secondly, scripting languages these days (Ruby & Groovy in particular) are gaining a lot of popularity. Dynamic typing, closures, the easy syntax and the real boost in productivity that they give due to the fact that they require less of lines of code compared to other languages are few of the reasons they are gaining that much popularity.
Groovy is an object oriented scripting language for the java platform, and its main features are dynamic typing, closures and operator overloading. When I say that it's for the java platform, I mean that it runs within the JVM, which gives it the advantages of java, like portability for instance.
There are a number of dynamic languages vying for your attention on the JVM these days. If you are already a Ruby programming, JRuby makes perfect sense. If you already know Python, then Jython should be an attractive option. But if you don't know these languages, it can be a bit of an uphill battle.
Groovy, on the other hand, is Java syntax with some sugar sprinkled over it. Here is a shortcut for creating an ArrayList:
Ruby and Python have other ways of maintain a list, but Groovy's is the way you already know -- an ArrayList. I find myself slipping between Java and Groovy all the time because they are truly interchangeable. If you prefer the Java syntax, then use it. But if you like the Groovy syntax, you are still every bit the Java programmer. Nice fit, eh?