Moreover there's probably no programming language which fits perfectly for all kind of programming tasks or problems.
Good point Marco.
I am using Groovy. It came about this way. I developed some Java code that processes financial transactions. The users said "that's great, but we don't want to run it from the command line, we want a browser interface". Damn. Developing web apps is so time consuming! I really did not want to grapple with Spring + Hibernate + Ajax + etc. etc. so looked for some frameworks that make web development easy.
Groovy and Grails has worked very well for me. The grails framework provides a very simple web programming by convention approach. Groovy keeps the controller code simple (although I can use Java when I want to). The controller logic is very thin, so the Groovy code in the controller calls out to Java code to perform the actual real (value-added) work.
The groovy/grails solution has worked very well for my particular case (in this instance).
Pick the "tool" you are most comfortable with to solve your particular problem.